]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20040909 snapshot
authorChet Ramey <chet.ramey@case.edu>
Sat, 3 Dec 2011 18:36:10 +0000 (13:36 -0500)
committerChet Ramey <chet.ramey@case.edu>
Sat, 3 Dec 2011 18:36:10 +0000 (13:36 -0500)
69 files changed:
CWRU/CWRU.chlog
CWRU/CWRU.chlog~
MANIFEST
MANIFEST~ [new file with mode: 0644]
Makefile.in
Makefile.in~ [new file with mode: 0644]
autom4te.cache/output.0
autom4te.cache/requests
autom4te.cache/traces.0
builtins/cd.def
builtins/common.c
builtins/common.h
builtins/echo.def
builtins/printf.def
config.h.in
config.h.in~ [new file with mode: 0644]
configure
configure.in
configure.in~
doc/FAQ
doc/FAQ~ [new file with mode: 0644]
doc/bash.1
doc/bash.1~
doc/version.texi
doc/version.texi~
execute_cmd.c
lib/readline/complete.c
lib/readline/doc/rluser.texi
lib/readline/doc/rluser.texi~ [new file with mode: 0644]
lib/sh/Makefile.in
lib/sh/Makefile.in~ [new file with mode: 0644]
lib/sh/strnlen.c [new file with mode: 0644]
lib/sh/strnlen.c~ [new file with mode: 0644]
parse.y
parse.y~ [new file with mode: 0644]
patchlevel.h
patchlevel.h~ [new file with mode: 0644]
po.orig/LINGUAS [new file with mode: 0644]
po.orig/Makefile.in.in [new file with mode: 0644]
po.orig/Makevars [new file with mode: 0644]
po.orig/Makevars.template [new file with mode: 0644]
po.orig/POTFILES.in [new file with mode: 0644]
po.orig/README [new file with mode: 0644]
po.orig/Rules-builtins [new file with mode: 0644]
po.orig/Rules-quot [new file with mode: 0644]
po.orig/bash.po.orig [new file with mode: 0644]
po.orig/bash.pot [new file with mode: 0644]
po.orig/boldquot.sed [new file with mode: 0644]
po.orig/builtins.pot [new file with mode: 0644]
po.orig/en@boldquot.gmo [new file with mode: 0644]
po.orig/en@boldquot.header [new file with mode: 0644]
po.orig/en@boldquot.po [new file with mode: 0644]
po.orig/en@quot.gmo [new file with mode: 0644]
po.orig/en@quot.header [new file with mode: 0644]
po.orig/en@quot.po [new file with mode: 0644]
po.orig/insert-header.sin [new file with mode: 0644]
po.orig/quot.sed [new file with mode: 0644]
po.orig/readline.po [new file with mode: 0644]
po.orig/remove-potcdate.sin [new file with mode: 0644]
po.tar [new file with mode: 0644]
po/bash.pot
po/diffs [new file with mode: 0644]
subst.c
support/mkversion.sh
support/mkversion.sh.save1 [new file with mode: 0644]
support/mkversion.sh~ [new file with mode: 0644]
tests/RUN-ONE-TEST
tests/array.right
tests/array.tests

index 40d94b6aced6758d80ac9f36a7bde9c66943db7e..0e715d22bd704fadcb26a44e3105ffe044d09682 100644 (file)
@@ -9965,3 +9965,66 @@ subst.c
          list_append for each split word -- as the list gets long, you have
          to traverse it every time.  Keep a pointer to the end of the list and
          and just tack onto it
+
+                                   9/8
+                                   ---
+lib/readline/complete.c
+       - change fnprint to calculate the displayed width of a filename in
+         the same way as fnwidth
+
+subst.c
+       - in verify_substring_values, when expanding ${array[@]:offset}, make
+         sure negative offsets count from one greater than the array's
+         maximum index so things like ${x[@}: -1} work to give the last element
+         (requires fixing array tests)
+
+builtins/common.c
+       - new error function, sh_wrerror(),  for builtins to call when a write
+         error occurs
+
+builtins/common.h
+       - extern declaration for sh_wrerror()
+
+builtins/cd.def
+       - change builtin_error call to use sh_wrerror()
+
+builtins/echo.def
+       - report write errors with sh_wrerror() instead of just returning
+         failure
+
+builtins/printf.def
+       - change printstr to return failure (-1) or success (0) indication
+         rather than void
+       - report write errors when printstr() fails, return failure
+       - if any of the PF/printf calls fail, report write error and return
+         failure
+
+execute_cmd.c
+       - change execute_in_subshell so the subshell command inherits the
+         command timing flags from the enclosing COMMAND *
+
+                                  9/11
+                                  ----
+[prayers for the victims of 9/11/2001]
+
+lib/sh/strnlen.c
+       - new file, implementation of GNU libc extension function strnlen
+
+lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST
+       - changes for strnlen
+
+configure.in
+       - version changed to 3.1-devel
+
+doc/bash.1, lib/readline/doc/rluser.texi
+       - added description of `-o plusdirs' to complete/compgen (thanks,
+         Arnold)
+
+parse.y
+       - new parser_state flag, PST_ASSIGNOK, if set indicates we're parsing
+         arguments to a builtin that accepts assignment statement arguments
+       - turn on PST_ASSIGNOK in read_token_word when appropriate
+       - turn off PST_ASSIGNOK in read_token when appropriate
+       - don't attempt to parse a compound assignment specially unless we're
+         in a position where an assignment statement is acceptable, or
+         PST_ASSIGNOK is set
index e058bf10d6aace8ccbe9ce8388861610b170d882..443fc3aa16d07d05dcd8a701414c59a1135bbe67 100644 (file)
@@ -9958,3 +9958,70 @@ lib/readline/display.c
          that might contain double-width multibyte characters.  Fixes from
          Tomohiro Kubota
 
+                                   9/6
+                                   ---
+subst.c
+       - change word_list_split to avoid really bad behavior caused by calling
+         list_append for each split word -- as the list gets long, you have
+         to traverse it every time.  Keep a pointer to the end of the list and
+         and just tack onto it
+
+                                   9/8
+                                   ---
+lib/readline/complete.c
+       - change fnprint to calculate the displayed width of a filename in
+         the same way as fnwidth
+
+subst.c
+       - in verify_substring_values, when expanding ${array[@]:offset}, make
+         sure negative offsets count from one greater than the array's
+         maximum index so things like ${x[@}: -1} work to give the last element
+         (requires fixing array tests)
+
+builtins/common.c
+       - new error function, sh_wrerror(),  for builtins to call when a write
+         error occurs
+
+builtins/common.h
+       - extern declaration for sh_wrerror()
+
+builtins/cd.def
+       - change builtin_error call to use sh_wrerror()
+
+builtins/echo.def
+       - report write errors with sh_wrerror() instead of just returning
+         failure
+
+builtins/printf.def
+       - change printstr to return failure (-1) or success (0) indication
+         rather than void
+       - report write errors when printstr() fails, return failure
+       - if any of the PF/printf calls fail, report write error and return
+         failure
+
+execute_cmd.c
+       - change execute_in_subshell so the subshell command inherits the
+         command timing flags from the enclosing COMMAND *
+
+                                  9/11
+                                  ----
+[prayers for the victims of 9/11/2001]
+
+lib/sh/strnlen.c
+       - new file, implementation of GNU libc extension function strnlen
+
+lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST
+       - changes for strnlen
+
+configure.in
+       - version changed to 3.1-devel
+
+doc/bash.1, lib/readline/doc/rluser.texi
+       - added description of `-o plusdirs' to complete/compgen (thanks,
+         Arnold)
+
+parse.y
+       - new parser_state flag, PST_ASSIGNOK, if set indicates we're parsing
+         arguments to a builtin that accepts assignment statement arguments
+       - turn on PST_ASSIGNOK in read_token_word when appropriate
+       - turn off PST_ASSIGNOK in read_token when appropriate
index a7b7be3ebbb36b59839cb9c20e5aa89e8c77a78f..398d522df6bfff5ad666e876e96cdf8a2426479c 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -408,6 +408,7 @@ lib/sh/strftime.c   f
 lib/sh/strindex.c      f
 lib/sh/stringlist.c    f
 lib/sh/stringvec.c     f
+lib/sh/strnlen.c       f
 lib/sh/strpbrk.c       f
 lib/sh/strstr.c                f
 lib/sh/strtod.c                f
diff --git a/MANIFEST~ b/MANIFEST~
new file mode 100644 (file)
index 0000000..a7b7be3
--- /dev/null
+++ b/MANIFEST~
@@ -0,0 +1,957 @@
+#
+# Master distribution manifest for bash
+#
+#
+# Filename     type
+#
+CWRU           d
+CWRU/misc      d
+builtins       d
+cross-build    d
+doc    d
+examples       d
+examples/bashdb        d
+examples/obashdb       d
+examples/complete      d
+examples/functions d
+examples/scripts d
+examples/scripts.v2    d
+examples/scripts.noah  d
+examples/startup-files d
+examples/startup-files/apple   d
+examples/misc  d
+examples/loadables d
+examples/loadables/perl        d
+include                d
+lib            d
+lib/glob       d
+lib/glob/doc   d
+lib/intl       d
+lib/malloc     d
+lib/readline   d
+lib/readline/doc d
+lib/readline/examples d
+lib/sh         d
+lib/termcap    d
+lib/termcap/grot d
+lib/tilde      d
+po             d
+support                d
+tests          d
+tests/misc     d
+ABOUT-NLS      f
+CHANGES                f
+COMPAT         f
+COPYING                f
+INSTALL                f
+MANIFEST       f
+NEWS           f
+NOTES          f
+POSIX          f
+README         f
+RBASH          f
+AUTHORS                f
+Y2K            f
+configure.in   f
+configure      f
+Makefile.in    f
+config-top.h   f
+config-bot.h   f
+config.h.in    f
+aclocal.m4     f
+array.c                f
+arrayfunc.c    f
+eval.c         f
+print_cmd.c    f
+general.c      f
+list.c         f
+locale.c       f
+stringlib.c    f
+variables.c    f
+make_cmd.c     f
+copy_cmd.c     f
+unwind_prot.c  f
+dispose_cmd.c  f
+bashhist.c     f
+hashcmd.c      f
+hashlib.c      f
+parse.y                f
+pathexp.c      f
+subst.c                f
+shell.c                f
+trap.c         f
+sig.c          f
+siglist.c      f
+version.c      f
+flags.c                f
+jobs.c         f
+input.c                f
+mailcheck.c    f
+test.c         f
+expr.c         f
+alias.c                f
+execute_cmd.c  f
+findcmd.c      f
+redir.c                f
+bashline.c     f
+braces.c       f
+bracecomp.c    f
+nojobs.c       f
+error.c                f
+xmalloc.c      f
+pcomplete.c    f
+pcomplib.c     f
+mksyntax.c     f
+alias.h                f
+builtins.h     f
+bashhist.h     f
+bashline.h     f
+conftypes.h    f
+patchlevel.h   f
+variables.h    f
+array.h                f
+arrayfunc.h    f
+jobs.h         f
+findcmd.h      f
+hashlib.h      f
+quit.h         f
+flags.h                f
+shell.h                f
+syntax.h       f
+pathexp.h      f
+parser.h       f
+pcomplete.h    f
+sig.h          f
+test.h         f
+trap.h         f
+general.h      f
+unwind_prot.h  f
+input.h                f
+error.h                f
+command.h      f
+externs.h      f
+siglist.h      f
+subst.h                f
+dispose_cmd.h  f
+hashcmd.h      f
+bashansi.h     f
+bashjmp.h      f
+bashintl.h     f
+make_cmd.h     f
+execute_cmd.h  f
+redir.h                f
+bashtypes.h    f
+mailcheck.h    f
+xmalloc.h      f
+y.tab.c                f
+y.tab.h                f
+parser-built   f
+pathnames.h.in f
+builtins/Makefile.in   f
+builtins/alias.def     f
+builtins/bind.def      f
+builtins/break.def     f
+builtins/builtin.def   f
+builtins/caller.def    f
+builtins/cd.def                f
+builtins/colon.def     f
+builtins/command.def   f
+builtins/complete.def  f
+builtins/common.c      f
+builtins/declare.def   f
+builtins/echo.def      f
+builtins/enable.def    f
+builtins/eval.def      f
+builtins/evalfile.c    f
+builtins/evalstring.c  f
+builtins/exec.def      f
+builtins/exit.def      f
+builtins/fc.def                f
+builtins/fg_bg.def     f
+builtins/getopt.c      f
+builtins/getopt.h      f
+builtins/getopts.def   f
+builtins/hash.def      f
+builtins/help.def      f
+builtins/let.def       f
+builtins/history.def   f
+builtins/jobs.def      f
+builtins/kill.def      f
+builtins/mkbuiltins.c  f
+builtins/printf.def    f
+builtins/pushd.def     f
+builtins/read.def      f
+builtins/reserved.def  f
+builtins/return.def    f
+builtins/set.def       f
+builtins/setattr.def   f
+builtins/shift.def     f
+builtins/shopt.def     f
+builtins/source.def    f
+builtins/suspend.def   f
+builtins/test.def      f
+builtins/times.def     f
+builtins/trap.def      f
+builtins/type.def      f
+builtins/ulimit.def    f
+builtins/umask.def     f
+builtins/wait.def      f
+builtins/psize.c       f
+builtins/psize.sh      f
+builtins/inlib.def     f
+builtins/bashgetopt.c  f
+builtins/common.h      f
+builtins/bashgetopt.h  f
+cross-build/cygwin32.cache     f
+cross-build/win32sig.h f
+cross-build/x86-beos.cache     f
+cross-build/beos-sig.h f
+cross-build/opennt.cache       f
+include/ansi_stdlib.h  f
+include/chartypes.h    f
+include/filecntl.h     f
+include/gettext.h      f
+include/maxpath.h      f
+include/memalloc.h     f
+include/ocache.h       f
+include/posixdir.h     f
+include/posixjmp.h     f
+include/posixstat.h    f
+include/posixtime.h    f
+include/posixwait.h    f
+include/shmbutil.h     f
+include/shtty.h                f
+include/stdc.h         f
+include/systimes.h     f
+include/typemax.h      f
+include/unionwait.h    f
+lib/glob/Makefile.in   f
+lib/glob/sm_loop.c     f
+lib/glob/smatch.c      f
+lib/glob/strmatch.c    f
+lib/glob/strmatch.h    f
+lib/glob/glob.c                f
+lib/glob/glob.h                f
+lib/glob/glob_loop.c   f
+lib/glob/xmbsrtowcs.c  f
+lib/glob/collsyms.h    f
+lib/glob/doc/Makefile  f
+lib/glob/doc/glob.texi f
+lib/glob/ndir.h                f
+lib/intl/ChangeLog     f
+lib/intl/Makefile.in   f
+lib/intl/VERSION       f
+lib/intl/bindtextdom.c f
+lib/intl/config.charset        f
+lib/intl/dcgettext.c   f
+lib/intl/dcigettext.c  f
+lib/intl/dcngettext.c  f
+lib/intl/dgettext.c    f
+lib/intl/dngettext.c   f
+lib/intl/eval-plural.h f
+lib/intl/explodename.c f
+lib/intl/finddomain.c  f
+lib/intl/gettext.c     f
+lib/intl/gettextP.h    f
+lib/intl/gmo.h         f
+lib/intl/hash-string.h f
+lib/intl/intl-compat.c f
+lib/intl/l10nflist.c   f
+lib/intl/libgnuintl.h.in       f
+lib/intl/loadinfo.h    f
+lib/intl/loadmsgcat.c  f
+lib/intl/localcharset.c        f
+lib/intl/localcharset.h        f
+lib/intl/locale.alias  f
+lib/intl/localealias.c f
+lib/intl/localename.c  f
+lib/intl/log.c         f
+lib/intl/ngettext.c    f
+lib/intl/os2compat.c   f
+lib/intl/os2compat.h   f
+lib/intl/osdep.c       f
+lib/intl/plural-exp.c  f
+lib/intl/plural-exp.h  f
+lib/intl/plural.c      f
+lib/intl/plural.y      f
+lib/intl/ref-add.sin   f
+lib/intl/ref-del.sin   f
+lib/intl/relocatable.c f
+lib/intl/relocatable.h f
+lib/intl/textdomain.c  f
+lib/malloc/Makefile.in f
+lib/malloc/getpagesize.h       f
+lib/malloc/imalloc.h   f
+lib/malloc/mstats.h    f
+lib/malloc/shmalloc.h  f
+lib/malloc/table.h     f
+lib/malloc/watch.h     f
+lib/malloc/alloca.c    f
+lib/malloc/malloc.c    f
+lib/malloc/stats.c     f
+lib/malloc/table.c     f
+lib/malloc/trace.c     f
+lib/malloc/watch.c     f
+lib/malloc/xmalloc.c   f
+lib/malloc/xleaktrace  f       755
+lib/malloc/stub.c      f
+lib/malloc/i386-alloca.s       f
+lib/malloc/x386-alloca.s       f
+lib/readline/COPYING   f
+lib/readline/Makefile.in       f
+lib/readline/ChangeLog f
+lib/readline/README    f
+lib/readline/STANDALONE f
+lib/readline/readline.c        f
+lib/readline/vi_mode.c f
+lib/readline/emacs_keymap.c    f
+lib/readline/vi_keymap.c       f
+lib/readline/history.c f
+lib/readline/histexpand.c      f
+lib/readline/histsearch.c      f
+lib/readline/histfile.c        f
+lib/readline/funmap.c  f
+lib/readline/keymaps.c f
+lib/readline/util.c    f
+lib/readline/terminal.c        f
+lib/readline/xmalloc.c f
+lib/readline/search.c  f
+lib/readline/isearch.c f
+lib/readline/parens.c  f
+lib/readline/rltty.c   f
+lib/readline/compat.c  f
+lib/readline/complete.c        f
+lib/readline/bind.c    f
+lib/readline/display.c f
+lib/readline/signals.c f
+lib/readline/kill.c    f
+lib/readline/text.c    f
+lib/readline/undo.c    f
+lib/readline/macro.c   f
+lib/readline/input.c   f
+lib/readline/callback.c        f
+lib/readline/mbutil.c  f
+lib/readline/misc.c    f
+lib/readline/nls.c     f
+lib/readline/shell.c   f
+lib/readline/savestring.c      f
+lib/readline/tilde.c   f
+lib/readline/tilde.h   f
+lib/readline/rldefs.h  f
+lib/readline/rlconf.h  f
+lib/readline/rlmbutil.h        f
+lib/readline/rlshell.h f
+lib/readline/rltty.h   f
+lib/readline/rltypedefs.h      f
+lib/readline/rlwinsize.h       f
+lib/readline/readline.h        f
+lib/readline/tcap.h    f
+lib/readline/keymaps.h f
+lib/readline/history.h f
+lib/readline/histlib.h f
+lib/readline/chardefs.h        f
+lib/readline/posixdir.h        f
+lib/readline/posixjmp.h        f
+lib/readline/posixstat.h       f
+lib/readline/ansi_stdlib.h     f
+lib/readline/rlstdc.h  f
+lib/readline/rlprivate.h       f
+lib/readline/xmalloc.h f
+lib/readline/doc/Makefile      f
+lib/readline/doc/version.texi  f
+lib/readline/doc/rlman.texi    f
+lib/readline/doc/rltech.texi   f
+lib/readline/doc/rluser.texi   f
+lib/readline/doc/rluserman.texi        f
+lib/readline/doc/history.texi  f
+lib/readline/doc/hstech.texi   f
+lib/readline/doc/hsuser.texi   f
+lib/readline/doc/fdl.texi      f
+lib/readline/examples/Makefile f
+lib/readline/examples/excallback.c     f
+lib/readline/examples/fileman.c        f
+lib/readline/examples/manexamp.c       f
+lib/readline/examples/histexamp.c      f
+lib/readline/examples/rltest.c f
+lib/readline/examples/rl.c     f
+lib/readline/examples/rlcat.c  f
+lib/readline/examples/Inputrc  f
+lib/sh/Makefile.in     f
+lib/sh/clktck.c                f
+lib/sh/clock.c         f
+lib/sh/fmtullong.c     f
+lib/sh/fmtulong.c      f
+lib/sh/fmtumax.c       f
+lib/sh/getcwd.c                f
+lib/sh/getenv.c                f
+lib/sh/inet_aton.c     f
+lib/sh/itos.c          f
+lib/sh/mailstat.c      f
+lib/sh/makepath.c      f
+lib/sh/memset.c                f
+lib/sh/mktime.c                f
+lib/sh/netconn.c       f
+lib/sh/netopen.c       f
+lib/sh/oslib.c         f
+lib/sh/pathcanon.c     f
+lib/sh/pathphys.c      f
+lib/sh/rename.c                f
+lib/sh/setlinebuf.c    f
+lib/sh/shmatch.c       f
+lib/sh/shquote.c       f
+lib/sh/shtty.c         f
+lib/sh/snprintf.c      f
+lib/sh/spell.c         f
+lib/sh/strcasecmp.c    f
+lib/sh/strerror.c      f
+lib/sh/strftime.c      f
+lib/sh/strindex.c      f
+lib/sh/stringlist.c    f
+lib/sh/stringvec.c     f
+lib/sh/strpbrk.c       f
+lib/sh/strstr.c                f
+lib/sh/strtod.c                f
+lib/sh/strtoimax.c     f
+lib/sh/strtol.c                f
+lib/sh/strtoll.c       f
+lib/sh/strtoul.c       f
+lib/sh/strtoull.c      f
+lib/sh/strtoumax.c     f
+lib/sh/strtrans.c      f
+lib/sh/times.c         f
+lib/sh/timeval.c       f
+lib/sh/tmpfile.c       f
+lib/sh/vprint.c                f
+lib/sh/xstrchr.c       f
+lib/sh/zcatfd.c                f
+lib/sh/zread.c         f
+lib/sh/zwrite.c                f
+lib/termcap/Makefile.in        f
+lib/termcap/ltcap.h    f
+lib/termcap/termcap.c  f
+lib/termcap/termcap.h  f
+lib/termcap/tparam.c   f
+lib/termcap/version.c  f
+lib/termcap/grot/termcap.info  f
+lib/termcap/grot/termcap.info-1        f
+lib/termcap/grot/termcap.info-2        f
+lib/termcap/grot/termcap.info-3        f
+lib/termcap/grot/termcap.info-4        f
+lib/termcap/grot/NEWS  f
+lib/termcap/grot/INSTALL       f
+lib/termcap/grot/ChangeLog     f
+lib/termcap/grot/texinfo.tex   f
+lib/termcap/grot/termcap.texi  f
+lib/termcap/grot/Makefile.in   f
+lib/termcap/grot/configure     f
+lib/termcap/grot/configure.in  f
+lib/termcap/grot/COPYING       f
+lib/termcap/grot/README        f
+lib/tilde/README       f
+lib/tilde/Makefile.in  f
+lib/tilde/tilde.c      f
+lib/tilde/tilde.h      f
+lib/tilde/shell.c      f
+po/LINGUAS             f
+po/Makefile.in.in      f
+po/Makevars            f
+po/POTFILES.in         f
+po/Rules-builtins      f
+po/Rules-quot          f
+po/bash.pot            f
+po/boldquot.sed                f
+po/en@quot.header      f
+po/en@boldquot.header  f
+po/en@quot.po          f
+po/en@boldquot.po      f
+po/en@quot.gmo         f
+po/en@boldquot.gmo     f
+po/insert-header.sin   f
+po/quot.sed            f
+po/remove-potcdate.sin f
+CWRU/misc/open-files.c f
+CWRU/misc/sigs.c       f
+CWRU/misc/sigstat.c    f
+CWRU/misc/bison                f
+CWRU/misc/errlist.c    f
+CWRU/misc/hpux10-dlfcn.h       f
+CWRU/PLATFORMS         f
+CWRU/README            f
+CWRU/changelog         f
+CWRU/sh-redir-hack     f
+CWRU/mh-folder-comp    f
+doc/FAQ                f
+doc/Makefile.in        f
+doc/bash.1     f
+doc/bashbug.1  f
+doc/builtins.1 f
+doc/rbash.1    f
+doc/README     f
+doc/INTRO      f
+doc/texinfo.tex        f
+doc/bashref.texi       f
+doc/version.texi       f
+doc/bashref.info       f
+doc/article.ms f
+doc/htmlpost.sh        f       755
+doc/infopost.sh        f       755
+doc/fdl.texi   f
+doc/fdl.txt    f
+support/Makefile.in    f
+support/bashversion.c  f
+support/config.guess   f
+support/config.rpath   f       755
+support/config.sub     f
+support/printenv.sh    f       755
+support/printenv.c     f
+support/bash.xbm       f
+support/missing                f       755
+support/mkclone                f       755
+support/mkconffiles    f       755
+support/mkdirs         f       755
+support/mkinstalldirs  f       755
+support/mkversion.sh   f       755
+support/mksignames.c   f
+support/bashbug.sh     f
+support/man2html.c     f
+support/recho.c                f
+support/zecho.c                f
+support/SYMLINKS       f
+support/fixlinks       f       755
+support/install.sh     f       755
+support/texi2dvi       f       755
+support/texi2html      f       755
+support/xenix-link.sh  f       755
+support/shobj-conf     f       755
+support/rlvers.sh      f       755
+examples/bashdb/PERMISSION     f
+examples/bashdb/bashdb         f
+examples/bashdb/bashdb.el      f
+examples/obashdb/PERMISSION    f
+examples/obashdb/README        f
+examples/obashdb/bashdb        f
+examples/obashdb/bashdb.fns    f
+examples/obashdb/bashdb.pre    f
+examples/complete/complete-examples    f
+examples/complete/complete.ianmac      f
+examples/complete/complete2.ianmac     f
+examples/complete/complete.freebsd     f
+examples/complete/complete.gnu-longopt f
+examples/complete/bashcc-1.0.1.tar.gz  f
+examples/loadables/README      f
+examples/loadables/template.c  f
+examples/loadables/Makefile.in f
+examples/loadables/necho.c     f
+examples/loadables/hello.c     f
+examples/loadables/print.c     f
+examples/loadables/realpath.c  f
+examples/loadables/sleep.c     f
+examples/loadables/strftime.c  f
+examples/loadables/truefalse.c f
+examples/loadables/getconf.h   f
+examples/loadables/getconf.c   f
+examples/loadables/finfo.c     f
+examples/loadables/cat.c       f
+examples/loadables/cut.c       f
+examples/loadables/logname.c   f
+examples/loadables/basename.c  f
+examples/loadables/dirname.c   f
+examples/loadables/tty.c       f
+examples/loadables/pathchk.c   f
+examples/loadables/tee.c       f
+examples/loadables/rmdir.c     f
+examples/loadables/head.c      f
+examples/loadables/printenv.c  f
+examples/loadables/push.c      f
+examples/loadables/id.c                f
+examples/loadables/whoami.c    f
+examples/loadables/uname.c     f
+examples/loadables/sync.c      f
+examples/loadables/mkdir.c     f
+examples/loadables/ln.c                f
+examples/loadables/unlink.c    f
+examples/loadables/perl/Makefile.in    f
+examples/loadables/perl/README f
+examples/loadables/perl/bperl.c        f
+examples/loadables/perl/iperl.c        f
+examples/functions/array-stuff f
+examples/functions/array-to-string     f
+examples/functions/autoload    f
+examples/functions/autoload.v2 f
+examples/functions/autoload.v3 f
+examples/functions/basename    f
+examples/functions/basename2   f
+examples/functions/coproc.bash f
+examples/functions/coshell.README      f
+examples/functions/coshell.bash        f
+examples/functions/csh-compat  f
+examples/functions/dirfuncs    f
+examples/functions/dirname     f
+examples/functions/emptydir    f
+examples/functions/exitstat    f
+examples/functions/external    f
+examples/functions/fact                f
+examples/functions/fstty       f
+examples/functions/func                f
+examples/functions/gethtml     f
+examples/functions/getoptx.bash        f
+examples/functions/inetaddr    f
+examples/functions/inpath      f
+examples/functions/isnum.bash  f
+examples/functions/isnum2      f
+examples/functions/isvalidip   f
+examples/functions/jdate.bash  f
+examples/functions/jj.bash     f
+examples/functions/keep                f
+examples/functions/ksh-cd      f
+examples/functions/ksh-compat-test     f
+examples/functions/kshenv      f
+examples/functions/login       f
+examples/functions/lowercase   f
+examples/functions/manpage     f
+examples/functions/mhfold      f
+examples/functions/notify.bash f
+examples/functions/pathfuncs   f
+examples/functions/recurse     f
+examples/functions/repeat2     f
+examples/functions/repeat3     f
+examples/functions/seq         f
+examples/functions/seq2                f
+examples/functions/shcat       f
+examples/functions/shcat2      f
+examples/functions/sort-pos-params     f
+examples/functions/substr      f
+examples/functions/substr2     f
+examples/functions/term                f
+examples/functions/whatis      f
+examples/functions/whence      f
+examples/functions/which       f
+examples/functions/xalias.bash f
+examples/functions/xfind.bash  f
+examples/scripts/adventure.sh  f
+examples/scripts/bcsh.sh       f
+examples/scripts/cat.sh                f
+examples/scripts/center                f
+examples/scripts/dd-ex.sh      f
+examples/scripts/fixfiles.bash f
+examples/scripts/hanoi.bash    f
+examples/scripts/inpath                f
+examples/scripts/krand.bash    f
+examples/scripts/line-input.bash       f
+examples/scripts/nohup.bash    f
+examples/scripts/precedence    f
+examples/scripts/randomcard.bash       f
+examples/scripts/scrollbar     f
+examples/scripts/scrollbar2    f
+examples/scripts/self-repro    f
+examples/scripts/showperm.bash f
+examples/scripts/shprompt      f
+examples/scripts/spin.bash     f
+examples/scripts/timeout       f
+examples/scripts/vtree2                f
+examples/scripts/vtree3                f
+examples/scripts/vtree3a       f
+examples/scripts/websrv.sh     f
+examples/scripts/xterm_title   f
+examples/scripts/zprintf       f
+examples/startup-files/README  f
+examples/startup-files/Bashrc.bfox     f
+examples/startup-files/Bash_aliases    f
+examples/startup-files/Bash_profile    f
+examples/startup-files/bash-profile    f
+examples/startup-files/bashrc  f
+examples/startup-files/apple/README    f
+examples/startup-files/apple/aliases   f
+examples/startup-files/apple/bash.defaults     f
+examples/startup-files/apple/environment       f
+examples/startup-files/apple/login     f
+examples/startup-files/apple/logout    f
+examples/startup-files/apple/rc                f
+examples/misc/suncmd.termcap   f
+examples/misc/aliasconv.sh     f
+examples/misc/aliasconv.bash   f
+examples/misc/cshtobash        f
+tests/README           f
+tests/alias.tests      f
+tests/alias.right      f
+tests/arith-for.tests  f
+tests/arith-for.right  f
+tests/arith.tests      f
+tests/arith.right      f
+tests/arith1.sub       f
+tests/arith2.sub       f
+tests/array.tests      f
+tests/array.right      f
+tests/array-at-star    f
+tests/array2.right     f
+tests/braces.tests     f
+tests/braces.right     f
+tests/builtins.tests   f
+tests/builtins.right   f
+tests/builtins1.sub    f
+tests/builtins2.sub    f
+tests/source1.sub      f
+tests/source2.sub      f
+tests/source3.sub      f
+tests/source4.sub      f
+tests/source5.sub      f
+tests/cond.tests       f
+tests/cond.right       f
+tests/cprint.tests     f
+tests/cprint.right     f
+tests/dbg-support.right        f
+tests/dbg-support.sub  f
+tests/dbg-support.tests        f
+tests/dbg-support2.right       f
+tests/dbg-support2.tests       f
+tests/dollar-at-star   f
+tests/dollar-at1.sub   f
+tests/dollar-at2.sub   f
+tests/dollar-star1.sub f
+tests/dollar.right     f
+tests/dstack.tests     f
+tests/dstack.right     f
+tests/dstack2.tests    f
+tests/dstack2.right    f
+tests/errors.tests     f
+tests/errors.right     f
+tests/execscript       f
+tests/exec.right       f
+tests/exec1.sub                f       755
+tests/exec2.sub                f
+tests/exec3.sub                f
+tests/exec4.sub                f
+tests/exec5.sub                f
+tests/exec6.sub                f
+tests/exec7.sub                f
+tests/exp-tests                f
+tests/exp.right                f
+tests/extglob.tests    f
+tests/extglob.right    f
+tests/extglob2.tests   f
+tests/extglob2.right   f
+tests/func.tests       f
+tests/func.right       f
+tests/func1.sub                f
+tests/func2.sub                f
+tests/func3.sub                f
+tests/getopts.tests    f
+tests/getopts.right    f
+tests/getopts1.sub     f
+tests/getopts2.sub     f
+tests/getopts3.sub     f
+tests/getopts4.sub     f
+tests/getopts5.sub     f
+tests/getopts6.sub     f
+tests/getopts7.sub     f
+tests/glob-test                f
+tests/glob1.sub                f
+tests/glob.right       f
+tests/heredoc.tests    f
+tests/heredoc.right    f
+tests/herestr.tests    f
+tests/herestr.right    f
+tests/histexp.tests    f
+tests/histexp.right    f
+tests/history.tests    f
+tests/history.right    f
+tests/history.list     f       444
+tests/ifs.tests                f
+tests/ifs.right                f
+tests/input-line.sh    f
+tests/input-line.sub   f
+tests/input.right      f
+tests/invert.tests     f
+tests/invert.right     f
+tests/jobs.tests       f
+tests/jobs1.sub                f
+tests/jobs2.sub                f
+tests/jobs3.sub                f
+tests/jobs4.sub                f
+tests/jobs.right       f
+tests/more-exp.tests   f
+tests/more-exp.right   f
+tests/new-exp.tests    f
+tests/new-exp1.sub     f
+tests/new-exp2.sub     f
+tests/new-exp3.sub     f
+tests/new-exp4.sub     f
+tests/new-exp.right    f
+tests/nquote.tests     f
+tests/nquote.right     f
+tests/nquote1.tests    f
+tests/nquote1.right    f
+tests/nquote2.tests    f
+tests/nquote2.right    f
+tests/nquote3.tests    f
+tests/nquote3.right    f
+tests/nquote4.tests    f
+tests/nquote4.right    f
+tests/posix2.tests     f
+tests/posix2.right     f
+tests/posixpat.tests   f
+tests/posixpat.right   f
+tests/prec.right       f
+tests/precedence       f
+tests/printf.tests     f
+tests/printf.right     f
+tests/quote.tests      f
+tests/quote.right      f
+tests/read.tests       f
+tests/read.right       f
+tests/read1.sub                f
+tests/read2.sub                f
+tests/read3.sub                f
+tests/read4.sub                f
+tests/read5.sub                f
+tests/redir.tests      f
+tests/redir.right      f
+tests/redir1.sub       f
+tests/redir2.sub       f
+tests/redir3.sub       f
+tests/redir3.in1       f
+tests/redir3.in2       f
+tests/redir4.sub       f
+tests/redir4.in1       f
+tests/redir5.sub       f
+tests/redir6.sub       f
+tests/rhs-exp.tests    f
+tests/rhs-exp.right    f
+tests/rsh.tests                f
+tests/rsh.right                f
+tests/run-all          f
+tests/run-minimal      f
+tests/run-alias                f
+tests/run-arith-for    f
+tests/run-arith                f
+tests/run-array                f
+tests/run-array2       f
+tests/run-braces       f
+tests/run-builtins     f
+tests/run-cond         f
+tests/run-cprint       f
+tests/run-dbg-support  f
+tests/run-dbg-support2 f
+tests/run-dirstack     f
+tests/run-dollars      f
+tests/run-errors       f
+tests/run-execscript   f
+tests/run-exp-tests    f
+tests/run-extglob      f
+tests/run-extglob2     f
+tests/run-func         f
+tests/run-getopts      f
+tests/run-glob-test    f
+tests/run-heredoc      f
+tests/run-herestr      f
+tests/run-histexpand   f
+tests/run-history      f
+tests/run-ifs          f
+tests/run-input-test   f
+tests/run-invert       f
+tests/run-jobs         f
+tests/run-more-exp     f
+tests/run-new-exp      f
+tests/run-nquote       f
+tests/run-nquote1      f
+tests/run-nquote2      f
+tests/run-nquote3      f
+tests/run-nquote4      f
+tests/run-posix2       f
+tests/run-posixpat     f
+tests/run-precedence   f
+tests/run-printf       f
+tests/run-quote                f
+tests/run-read         f
+tests/run-redir                f
+tests/run-rhs-exp      f
+tests/run-rsh          f
+tests/run-set-e                f
+tests/run-set-x                f
+tests/run-shopt                f
+tests/run-strip                f
+tests/run-test         f
+tests/run-tilde                f
+tests/run-trap         f
+tests/run-type         f
+tests/run-varenv       f
+tests/set-e-test       f
+tests/set-e.right      f
+tests/set-x.tests      f
+tests/set-x.right      f
+tests/shopt.tests      f       
+tests/shopt.right      f
+tests/strip.tests      f
+tests/strip.right      f
+tests/test.tests       f
+tests/test.right       f
+tests/tilde-tests      f
+tests/tilde.right      f
+tests/trap.tests       f
+tests/trap.right       f
+tests/trap1.sub                f       755
+tests/trap2.sub                f       755
+tests/trap2a.sub       f       755
+tests/type.tests       f
+tests/type.right       f
+tests/varenv.right     f
+tests/varenv.sh                f
+tests/varenv1.sub      f
+tests/varenv2.sub      f
+tests/version          f
+tests/version.mini     f
+tests/misc/dev-tcp.tests       f
+tests/misc/perf-script f
+tests/misc/perftest    f
+tests/misc/read-nchars.tests   f
+tests/misc/redir-t2.sh f
+tests/misc/run-r2.sh   f
+tests/misc/sigint-1.sh         f
+tests/misc/sigint-2.sh         f
+tests/misc/sigint-3.sh         f
+tests/misc/sigint-4.sh         f
+tests/misc/test-minus-e.1      f
+tests/misc/test-minus-e.2      f
+tests/misc/wait-bg.tests       f
+examples/scripts.v2/PERMISSION f
+examples/scripts.v2/README     f
+examples/scripts.v2/arc2tarz   f
+examples/scripts.v2/bashrand   f
+examples/scripts.v2/cal2day.bash       f
+examples/scripts.v2/cdhist.bash        f
+examples/scripts.v2/corename   f
+examples/scripts.v2/fman       f
+examples/scripts.v2/frcp       f
+examples/scripts.v2/lowercase  f
+examples/scripts.v2/ncp        f
+examples/scripts.v2/newext     f
+examples/scripts.v2/nmv        f
+examples/scripts.v2/pages      f
+examples/scripts.v2/pf f
+examples/scripts.v2/ren                f
+examples/scripts.v2/rename     f
+examples/scripts.v2/repeat     f
+examples/scripts.v2/untar      f
+examples/scripts.v2/uudec      f
+examples/scripts.v2/uuenc      f
+examples/scripts.v2/vtree      f
+examples/scripts.v2/where      f
+examples/scripts.v2/pmtop      f
+examples/scripts.v2/shprof     f
+examples/scripts.noah/PERMISSION       f
+examples/scripts.noah/README   f
+examples/scripts.noah/aref.bash        f
+examples/scripts.noah/bash.sub.bash    f
+examples/scripts.noah/bash_version.bash        f
+examples/scripts.noah/meta.bash        f
+examples/scripts.noah/mktmp.bash       f
+examples/scripts.noah/number.bash      f
+examples/scripts.noah/prompt.bash      f
+examples/scripts.noah/remap_keys.bash  f
+examples/scripts.noah/require.bash     f
+examples/scripts.noah/send_mail.bash   f
+examples/scripts.noah/shcat.bash       f
+examples/scripts.noah/source.bash      f
+examples/scripts.noah/string.bash      f
+examples/scripts.noah/stty.bash        f
+examples/scripts.noah/y_or_n_p.bash    f
index 56bc2b4b09311241f8bb96e0e43ef0359929ce83..4e28496ee301fe6f2d73fb4f3342137d7f05b3b0 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile for bash-3.0, version 2.152
+# Makefile for bash-3.0, version 2.153
 #
 # Copyright (C) 1996-2004 Free Software Foundation, Inc.
 
@@ -196,7 +196,8 @@ SHLIB_SOURCE =      ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
                ${SH_LIBSRC}/fmtumax.c ${SH_LIBSRC}/netconn.c \
                ${SH_LIBSRC}/mktime.c ${SH_LIBSRC}/strftime.c \
                ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \
-               ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c
+               ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c \
+               ${SH_LIBSRC}/strnlen.c
 
 SHLIB_LIB = -lsh
 SHLIB_LIBNAME = libsh.a
@@ -668,7 +669,7 @@ $(srcdir)/configure:        $(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/confi
 
 # for chet
 reconfig: force
-       sh $(srcdir)/configure
+       sh $(srcdir)/configure -C
 
 #newversion:   mkversion
 #      $(RM) .build
diff --git a/Makefile.in~ b/Makefile.in~
new file mode 100644 (file)
index 0000000..fb6a2ea
--- /dev/null
@@ -0,0 +1,1436 @@
+# Makefile for bash-3.0, version 2.152
+#
+# Copyright (C) 1996-2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+# Make sure the first target in the makefile is the right one
+all: .made
+
+PACKAGE = @PACKAGE_NAME@
+VERSION = @PACKAGE_VERSION@
+
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+
+# Include some boilerplate Gnu makefile definitions.
+prefix = @prefix@
+
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+libdir = @libdir@
+infodir = @infodir@
+includedir = @includedir@
+datadir = @datadir@
+localedir = $(datadir)/locale
+
+mandir = @mandir@
+manpfx = man
+
+man1ext = .1
+man1dir = $(mandir)/$(manpfx)1
+man3ext = .3
+man3dir = $(mandir)/$(manpfx)3
+
+htmldir = @htmldir@
+
+# Support an alternate destination root directory for package building
+DESTDIR =
+
+topdir = @top_srcdir@
+BUILD_DIR = @BUILD_DIR@
+top_builddir = @BUILD_DIR@
+srcdir = @srcdir@
+VPATH = .:@srcdir@
+
+@SET_MAKE@
+CC = @CC@
+CC_FOR_BUILD = @CC_FOR_BUILD@
+YACC = @YACC@
+SHELL = @MAKE_SHELL@
+CP = cp
+RM = rm -f
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+RANLIB = @RANLIB@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALLMODE= -m 0755
+INSTALLMODE2 = -m 0555
+
+TESTSCRIPT = @TESTSCRIPT@
+
+#If you have purify, and want to use it, uncomment this definition or
+# run the make as `make PURIFY=purify'
+# or run configure with the --with-purify argument.
+PURIFY = @PURIFY@
+
+# Here is a rule for making .o files from .c files that does not
+# force the type of the machine (like -M_MACHINE) into the flags.
+.c.o:
+       $(RM) $@
+       $(CC) $(CCFLAGS) -c $<
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+
+# The name of this program and some version information.
+VERSPROG = bashversion$(EXEEXT)
+VERSOBJ = bashversion.$(OBJEXT)
+
+Program = bash$(EXEEXT)
+Version = @BASHVERS@
+PatchLevel = `$(BUILD_DIR)/$(VERSPROG) -p`
+RELSTATUS = @RELSTATUS@
+
+Machine = @host_cpu@
+OS = @host_os@
+VENDOR = @host_vendor@
+MACHTYPE = @host@
+
+# comment out for release
+DEBUG = @DEBUG@
+MALLOC_DEBUG = @MALLOC_DEBUG@
+
+THIS_SH = $(BUILD_DIR)/$(Program)
+
+# PROFILE_FLAGS is either -pg, to generate profiling info for use
+# with gprof, or nothing (the default).
+PROFILE_FLAGS= @PROFILE_FLAGS@
+
+CFLAGS = @CFLAGS@
+CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
+LOCAL_CFLAGS = @LOCAL_CFLAGS@ ${DEBUG}
+DEFS = @DEFS@
+LOCAL_DEFS = @LOCAL_DEFS@
+
+LOCALE_DEFS = -DLOCALEDIR='"$(localedir)"' -DPACKAGE='"$(PACKAGE)"'
+
+LOCAL_LIBS = @LOCAL_LIBS@
+LIBS = $(BUILTINS_LIB) $(LIBRARIES) @LIBS@
+STATIC_LD = @STATIC_LD@
+LOCAL_LDFLAGS = @LOCAL_LDFLAGS@
+
+SYSTEM_FLAGS = -DPROGRAM='"$(Program)"' -DCONF_HOSTTYPE='"$(Machine)"' -DCONF_OSTYPE='"$(OS)"' -DCONF_MACHTYPE='"$(MACHTYPE)"' -DCONF_VENDOR='"$(VENDOR)"' $(LOCALE_DEFS)
+
+BASE_CCFLAGS = $(PROFILE_FLAGS) $(SYSTEM_FLAGS) $(LOCAL_DEFS) \
+         $(DEFS) $(LOCAL_CFLAGS) $(INCLUDES)
+
+CCFLAGS = $(BASE_CCFLAGS) $(CPPFLAGS) $(CFLAGS)
+
+CCFLAGS_FOR_BUILD = $(BASE_CCFLAGS) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
+
+LDFLAGS = @LDFLAGS@ $(STATIC_LD) $(LOCAL_LDFLAGS) $(PROFILE_FLAGS) $(CFLAGS)
+LDFLAGS_FOR_BUILD = $(LDFLAGS)
+
+INCLUDES = -I. @RL_INCLUDE@ -I$(srcdir) -I$(BASHINCDIR) -I$(LIBSRC) $(INTL_INC)
+
+GCC_LINT_FLAGS = -Wall -Wshadow -Wpointer-arith -Wcast-qual \
+                -Wcast-align -Wstrict-prototypes -Wconversion \
+                -Wmissing-prototypes -Wtraditional -Wredundant-decls -pedantic
+
+GCC_LINT_CFLAGS = $(BASE_CCFLAGS) $(CPPFLAGS) $(GCC_LINT_FLAGS)
+
+#
+# Support libraries
+# 
+
+dot = .
+
+LIBSUBDIR = lib
+LIBSRC = $(srcdir)/$(LIBSUBDIR)
+
+LIBBUILD = ${BUILD_DIR}/${LIBSUBDIR}
+
+SUBDIR_INCLUDES = -I. @RL_INCLUDE@ -I$(topdir) -I$(topdir)/$(LIBSUBDIR)
+
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+
+# the bash library
+# the library is a mix of functions that the C library does not provide on
+# some platforms and general shell utility functions
+SH_LIBSRC = $(LIBSRC)/sh
+SH_LIBDIR = $(dot)/${LIBSUBDIR}/sh
+SH_ABSSRC = ${topdir}/${SH_LIBSRC}
+
+SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
+               ${SH_LIBSRC}/getenv.c ${SH_LIBSRC}/oslib.c \
+               ${SH_LIBSRC}/setlinebuf.c \
+               ${SH_LIBSRC}/strcasecmp.c ${SH_LIBSRC}/strerror.c \
+               ${SH_LIBSRC}/strtod.c ${SH_LIBSRC}/strtol.c \
+               ${SH_LIBSRC}/strtoul.c ${SH_LIBSRC}/vprint.c \
+               ${SH_LIBSRC}/itos.c ${SH_LIBSRC}/rename.c \
+               ${SH_LIBSRC}/zread.c ${SH_LIBSRC}/zwrite.c \
+               ${SH_LIBSRC}/shtty.c ${SH_LIBSRC}/inet_aton.c \
+               ${SH_LIBSRC}/netopen.c ${SH_LIBSRC}/strpbrk.c \
+               ${SH_LIBSRC}/timeval.c ${SH_LIBSRC}/clock.c \
+               ${SH_LIBSRC}/makepath.c ${SH_LIBSRC}/pathcanon.c \
+               ${SH_LIBSRC}/pathphys.c ${SH_LIBSRC}/stringlist.c \
+               ${SH_LIBSRC}/stringvec.c ${SH_LIBSRC}/tmpfile.c \
+               ${SH_LIBSRC}/spell.c ${SH_LIBSRC}/strtrans.c \
+               ${SH_LIBSRC}/strindex.c ${SH_LIBSRC}/shquote.c \
+               ${SH_LIBSRC}/snprintf.c ${SH_LIBSRC}/mailstat.c \
+               ${SH_LIBSRC}/fmtulong.c ${SH_LIBSRC}/fmtullong.c \
+               ${SH_LIBSRC}/strtoll.c ${SH_LIBSRC}/strtoull.c \
+               ${SH_LIBSRC}/strtoimax.c ${SH_LIBSRC}/strtoumax.c \
+               ${SH_LIBSRC}/fmtumax.c ${SH_LIBSRC}/netconn.c \
+               ${SH_LIBSRC}/mktime.c ${SH_LIBSRC}/strftime.c \
+               ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \
+               ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c \
+               ${SH_LIBSRC}/strnlen.c
+
+SHLIB_LIB = -lsh
+SHLIB_LIBNAME = libsh.a
+SHLIB_LIBRARY = ${SH_LIBDIR}/${SHLIB_LIBNAME}
+SHLIB_LDFLAGS = -L${SH_LIBDIR}
+SHLIB_DEP = ${SHLIB_LIBRARY}
+
+# we assume for now that readline source is being shipped with bash
+RL_LIBSRC = $(LIBSRC)/readline
+RL_LIBDOC = $(RL_LIBSRC)/doc
+RL_LIBDIR = @RL_LIBDIR@
+RL_ABSSRC = ${topdir}/$(RL_LIBDIR)
+
+RL_INCLUDEDIR = @RL_INCLUDEDIR@
+
+READLINE_LIB = @READLINE_LIB@
+READLINE_LIBRARY = $(RL_LIBDIR)/libreadline.a
+READLINE_LDFLAGS = -L${RL_LIBDIR}
+READLINE_DEP = @READLINE_DEP@
+
+# The source, object and documentation of the GNU Readline library.
+READLINE_SOURCE        = $(RL_LIBSRC)/rldefs.h $(RL_LIBSRC)/rlconf.h \
+                 $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/tcap.h \
+                 $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/keymaps.h \
+                 $(RL_LIBSRC)/history.h $(RL_LIBSRC)/histlib.h \
+                 $(RL_LIBSRC)/posixstat.h $(RL_LIBSRC)/tilde.h \
+                 $(RL_LIBSRC)/rlstdc.h ${RL_LIBSRC}/xmalloc.h \
+                 $(RL_LIBSRC)/rlshell.h ${RL_LIBSRC}/rlprivate.h \
+                 $(RL_LIBSRC)/funmap.c $(RL_LIBSRC)/emacs_keymap.c \
+                 $(RL_LIBSRC)/search.c $(RL_LIBSRC)/vi_keymap.c \
+                 $(RL_LIBSRC)/keymaps.c $(RL_LIBSRC)/parens.c \
+                 $(RL_LIBSRC)/vi_mode.c $(RL_LIBSRC)/callback.c \
+                 $(RL_LIBSRC)/readline.c $(RL_LIBSRC)/tilde.c \
+                 $(RL_LIBSRC)/rltty.c $(RL_LIBSRC)/complete.c \
+                 $(RL_LIBSRC)/bind.c $(RL_LIBSRC)/isearch.c \
+                 $(RL_LIBSRC)/display.c $(RL_LIBSRC)/signals.c \
+                 $(RL_LIBSRC)/util.c $(RL_LIBSRC)/kill.c $(RL_LIBSRC)/text.c \
+                 $(RL_LIBSRC)/undo.c $(RL_LIBSRC)/macro.c \
+                 $(RL_LIBSRC)/terminal.c $(RL_LIBSRC)/nls.c \
+                 $(RL_LIBSRC)/input.c $(RL_LIBSRC)/xmalloc.c \
+                 $(RL_LIBSRC)/shell.c $(RL_LIBSRC)/savestring.c \
+                 $(RL_LIBSRC)/misc.c $(RL_LIBSRC)/mbutil.c $(RL_LIBSRC)/compat.c \
+                 $(RL_LIBSRC)/histexpand.c $(RL_LIBSRC)/history.c \
+                 $(RL_LIBSRC)/histsearch.c $(RL_LIBSRC)/histfile.c
+
+READLINE_OBJ   = $(RL_LIBDIR)/readline.o $(RL_LIBDIR)/funmap.o \
+                 $(RL_LIBDIR)/parens.o $(RL_LIBDIR)/search.o \
+                 $(RL_LIBDIR)/keymaps.o $(RL_LIBDIR)/xmalloc.o \
+                 $(RL_LIBDIR)/rltty.o $(RL_LIBDIR)/complete.o \
+                 $(RL_LIBDIR)/bind.o $(RL_LIBDIR)/isearch.o \
+                 $(RL_LIBDIR)/display.o $(RL_LIBDIR)/signals.o \
+                 $(RL_LIBDIR)/tilde.o $(RL_LIBDIR)/util.o \
+                 $(RL_LIBDIR)/kill.o $(RL_LIBDIR)/undo.o $(RL_LIBDIR)/nls.o \
+                 $(RL_LIBDIR)/macro.o $(RL_LIBDIR)/input.o \
+                 $(RL_LIBDIR)/terminal.o $(RL_LIBDIR)/callback.o \
+                 $(RL_LIBDIR)/shell.o $(RL_LIBDIR)/savestring.o \
+                 $(RL_LIBDIR)/mbutil.o $(RL_LIBDIR)/compat.o \
+                 $(RL_LIBDIR)/history.o $(RL_LIBDIR)/histexpand.o \
+                 $(RL_LIBDIR)/histsearch.o $(RL_LIBDIR)/histfile.o
+
+HIST_LIBSRC = $(LIBSRC)/readline
+HIST_LIBDIR = @HIST_LIBDIR@
+HIST_ABSSRC = ${topdir}/$(HIST_LIBDIR)
+
+HISTORY_LIB = @HISTORY_LIB@
+HISTORY_LIBRARY = $(HIST_LIBDIR)/libhistory.a
+HISTORY_LDFLAGS = -L$(HIST_LIBDIR)
+HISTORY_DEP = @HISTORY_DEP@
+
+# The source, object and documentation of the history library.
+HISTORY_SOURCE = $(HIST_LIBSRC)/history.c $(HIST_LIBSRC)/histexpand.c \
+                 $(HIST_LIBSRC)/histsearch.c $(HIST_LIBSRC)/histfile.c \
+                 $(HIST_LIBSRC)/shell.c \
+                 $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/histlib.h
+HISTORY_OBJ    = $(HIST_LIBDIR)/history.o $(HIST_LIBDIR)/histexpand.o \
+                 $(HIST_LIBDIR)/histsearch.o $(HIST_LIBDIR)/histfile.o \
+                 $(HIST_LIBDIR)/shell.o
+
+# You only need termcap (or curses) if you are linking with GNU Readline.
+TERM_LIBSRC = $(LIBSRC)/termcap
+TERM_LIBDIR = $(dot)/$(LIBSUBDIR)/termcap
+TERM_ABSSRC = ${topdir}/$(TERM_LIBDIR)
+
+TERMCAP_LIB = @TERMCAP_LIB@
+TERMCAP_LIBRARY = $(TERM_LIBDIR)/libtermcap.a
+TERMCAP_LDFLAGS = -L$(TERM_LIBDIR)
+TERMCAP_DEP = @TERMCAP_DEP@
+
+TERMCAP_SOURCE = $(TERM_LIBSRC)/termcap.c $(TERM_LIBSRC)/tparam.c
+TERMCAP_OBJ    = $(TERM_LIBDIR)/termcap.o $(TERM_LIBDIR)/tparam.o
+
+GLOB_LIBSRC = $(LIBSRC)/glob
+GLOB_LIBDIR = $(dot)/$(LIBSUBDIR)/glob
+GLOB_ABSSRC = ${topdir}/$(GLOB_LIBDIR)
+
+GLOB_LIB     = -lglob
+GLOB_LIBRARY = $(GLOB_LIBDIR)/libglob.a
+GLOB_LDFLAGS = -L$(GLOB_LIBDIR)
+GLOB_DEP = $(GLOB_LIBRARY)
+
+GLOB_SOURCE = $(GLOB_LIBSRC)/glob.c $(GLOB_LIBSRC)/strmatch.c \
+             $(GLOB_LIBSRC)/smatch.c $(GLOB_LIBSRC)/xmbsrtowcs.c \
+             $(GLOB_LIBSRC)/glob_loop.c $(GLOB_LIBSRC)/sm_loop.c \
+             $(GLOB_LIBSRC)/glob.h $(GLOB_LIBSRC)/strmatch.h
+GLOB_OBJ    = $(GLOB_LIBDIR)/glob.o $(GLOB_LIBDIR)/strmatch.o \
+             $(GLOB_LIBDIR)/smatch.o $(GLOB_LIBDIR)/xmbsrtowcs.o
+
+# The source, object and documentation for the GNU Tilde library.
+TILDE_LIBSRC = $(LIBSRC)/tilde
+TILDE_LIBDIR = $(dot)/$(LIBSUBDIR)/tilde
+TILDE_ABSSRC = ${topdir}/$(TILDE_LIBDIR)
+
+TILDE_LIB = -ltilde
+TILDE_LIBRARY = $(TILDE_LIBDIR)/libtilde.a
+TILDE_LDFLAGS = -L$(TILDE_LIBDIR)
+TILDE_DEP = $(TILDE_LIBRARY)
+
+TILDE_SOURCE   = $(TILDE_LIBSRC)/tilde.c $(TILDE_LIBSRC)/tilde.h
+TILDE_OBJ      = $(TILDE_LIBDIR)/tilde.o
+
+# libintl
+INTL_LIBSRC = $(LIBSRC)/intl
+INTL_LIBDIR = $(dot)/$(LIBSUBDIR)/intl
+INTL_ABSSRC = ${topdir}/$(INTL_LIB)
+INTL_BUILDDIR = ${LIBBUILD}/intl
+
+INTL_LIB     = @LIBINTL@
+INTL_LIBRARY = $(INTL_LIBDIR)/libintl.a
+INTL_DEP = @INTL_DEP@
+INTL_INC = @INTL_INC@
+
+LIBINTL_H = @LIBINTL_H@
+
+# tests
+LIBINTL = @LIBINTL@
+LTLIBINTL = @LTLIBINTL@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+
+# Our malloc.
+MALLOC_TARGET = @MALLOC_TARGET@
+
+# set to alloca.o if we are using the C alloca in lib/malloc
+ALLOCA = @ALLOCA@
+
+ALLOC_LIBSRC = $(LIBSRC)/malloc
+ALLOC_LIBDIR = $(dot)/$(LIBSUBDIR)/malloc
+ALLOC_ABSSRC = ${topdir}/$(ALLOC_LIBDIR)
+
+MALLOC_SRC = @MALLOC_SRC@
+MALLOC_OTHERSRC = ${ALLOC_LIBSRC}/trace.c ${ALLOC_LIBSRC}/stats.c \
+                 ${ALLOC_LIBSRC}/table.c ${ALLOC_LIBSRC}/watch.c
+MALLOC_SOURCE = ${ALLOC_LIBSRC}/${MALLOC_SRC} ${MALLOC_OTHERSRC}
+MALLOC_CFLAGS = -DRCHECK -Dbotch=programming_error ${MALLOC_DEBUG}
+
+MALLOC_LIB     = @MALLOC_LIB@
+MALLOC_LIBRARY = @MALLOC_LIBRARY@
+MALLOC_LDFLAGS = @MALLOC_LDFLAGS@
+MALLOC_DEP = @MALLOC_DEP@
+
+ALLOC_HEADERS = $(ALLOC_LIBSRC)/getpagesize.h $(ALLOC_LIBSRC)/shmalloc.h \
+               $(ALLOC_LIBSRC)/imalloc.h $(ALLOC_LIBSRC)/mstats.h \
+               $(ALLOC_LIBSRC)/table.h $(ALLOC_LIBSRC)/watch.h
+
+$(MALLOC_LIBRARY):     ${MALLOC_SOURCE} ${ALLOC_HEADERS} config.h
+               @(cd $(ALLOC_LIBDIR) && \
+                $(MAKE) $(MFLAGS) \
+                MALLOC_CFLAGS="$(MALLOC_CFLAGS)" ${MALLOC_TARGET} ) || exit 1
+
+BASHINCDIR = ${srcdir}/include
+BASHINCFILES =  $(BASHINCDIR)/posixstat.h $(BASHINCDIR)/ansi_stdlib.h \
+                $(BASHINCDIR)/filecntl.h $(BASHINCDIR)/posixdir.h \
+                $(BASHINCDIR)/memalloc.h $(BASHINCDIR)/stdc.h \
+                $(BASHINCDIR)/posixjmp.h $(BASHINCDIR)/posixwait.h \
+                $(BASHINCDIR)/posixtime.h $(BASHINCDIR)/systimes.h \
+                $(BASHINCDIR)/unionwait.h $(BASHINCDIR)/maxpath.h \
+                $(BASHINCDIR)/shtty.h $(BASHINCDIR)/typemax.h \
+                $(BASHINCDIR)/ocache.h
+
+LIBRARIES = $(SHLIB_LIB) $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \
+           $(TILDE_LIB) $(MALLOC_LIB) $(INTL_LIB) $(LOCAL_LIBS)
+
+LIBDEP = $(SHLIB_DEP) $(INTL_DEP) $(READLINE_DEP) $(HISTORY_DEP) $(TERMCAP_DEP) $(GLOB_DEP) \
+        $(TILDE_DEP) $(MALLOC_DEP)
+
+LIBRARY_LDFLAGS = $(READLINE_LDFLAGS) $(HISTORY_LDFLAGS) $(GLOB_LDFLAGS) \
+                 $(TILDE_LDFLAGS) $(MALLOC_LDFLAGS) $(SHLIB_LDFLAGS)
+
+#
+# The shell itself
+#
+
+# The main source code for the Bourne Again SHell.
+CSOURCES = shell.c eval.c parse.y general.c make_cmd.c print_cmd.c y.tab.c \
+          dispose_cmd.c execute_cmd.c variables.c $(GLOBC) version.c \
+          expr.c copy_cmd.c flags.c subst.c hashcmd.c hashlib.c mailcheck.c \
+          test.c trap.c alias.c jobs.c nojobs.c $(ALLOC_FILES) braces.c \
+          input.c bashhist.c array.c arrayfunc.c sig.c pathexp.c \
+          unwind_prot.c siglist.c bashline.c bracecomp.c error.c \
+          list.c stringlib.c locale.c findcmd.c redir.c \
+          pcomplete.c pcomplib.c syntax.c xmalloc.c
+
+HSOURCES = shell.h flags.h trap.h hashcmd.h hashlib.h jobs.h builtins.h \
+          general.h variables.h config.h $(ALLOC_HEADERS) alias.h \
+          quit.h unwind_prot.h syntax.h ${GRAM_H} \
+          command.h input.h error.h bashansi.h dispose_cmd.h make_cmd.h \
+          subst.h externs.h siglist.h bashhist.h bashline.h bashtypes.h \
+          array.h arrayfunc.h sig.h mailcheck.h bashintl.h bashjmp.h \
+          execute_cmd.h parser.h pathexp.h pathnames.h pcomplete.h \
+          $(BASHINCFILES)
+
+SOURCES         = $(CSOURCES) $(HSOURCES) $(BUILTIN_DEFS)
+
+# header files chosen based on running of configure
+SIGNAMES_H = @SIGNAMES_H@
+
+# object files chosen based on running of configure
+JOBS_O = @JOBS_O@
+SIGLIST_O = @SIGLIST_O@
+
+# Matching object files.
+OBJECTS         = shell.o eval.o y.tab.o general.o make_cmd.o print_cmd.o $(GLOBO) \
+          dispose_cmd.o execute_cmd.o variables.o copy_cmd.o error.o \
+          expr.o flags.o $(JOBS_O) subst.o hashcmd.o hashlib.o mailcheck.o \
+          trap.o input.o unwind_prot.o pathexp.o sig.o test.o version.o \
+          alias.o array.o arrayfunc.o braces.o bracecomp.o bashhist.o \
+          bashline.o $(SIGLIST_O) list.o stringlib.o locale.o findcmd.o redir.o \
+          pcomplete.o pcomplib.o syntax.o xmalloc.o
+
+# Where the source code of the shell builtins resides.
+BUILTIN_SRCDIR=$(srcdir)/builtins
+DEFSRC=$(BUILTIN_SRCDIR)
+BUILTIN_ABSSRC=${topdir}/builtins
+DEFDIR = $(dot)/builtins
+DEBUGGER_DIR = $(dot)/debugger
+
+BUILTIN_DEFS = $(DEFSRC)/alias.def $(DEFSRC)/bind.def $(DEFSRC)/break.def \
+              $(DEFSRC)/builtin.def $(DEFSRC)/cd.def $(DEFSRC)/colon.def \
+              $(DEFSRC)/command.def ${DEFSRC}/complete.def \
+              $(DEFSRC)/caller.def $(DEFSRC)/declare.def \
+              $(DEFSRC)/echo.def $(DEFSRC)/enable.def $(DEFSRC)/eval.def \
+              $(DEFSRC)/exec.def $(DEFSRC)/exit.def $(DEFSRC)/fc.def \
+              $(DEFSRC)/fg_bg.def $(DEFSRC)/hash.def $(DEFSRC)/help.def \
+              $(DEFSRC)/history.def $(DEFSRC)/jobs.def $(DEFSRC)/kill.def \
+              $(DEFSRC)/let.def $(DEFSRC)/read.def $(DEFSRC)/return.def \
+              $(DEFSRC)/set.def $(DEFSRC)/setattr.def $(DEFSRC)/shift.def \
+              $(DEFSRC)/source.def $(DEFSRC)/suspend.def $(DEFSRC)/test.def \
+              $(DEFSRC)/times.def $(DEFSRC)/trap.def $(DEFSRC)/type.def \
+              $(DEFSRC)/ulimit.def $(DEFSRC)/umask.def $(DEFSRC)/wait.def \
+              $(DEFSRC)/getopts.def $(DEFSRC)/reserved.def \
+              $(DEFSRC)/pushd.def $(DEFSRC)/shopt.def $(DEFSRC)/printf.def
+BUILTIN_C_SRC  = $(DEFSRC)/mkbuiltins.c $(DEFSRC)/common.c \
+                $(DEFSRC)/evalstring.c $(DEFSRC)/evalfile.c \
+                $(DEFSRC)/bashgetopt.c $(GETOPT_SOURCE)
+BUILTIN_C_OBJ  = $(DEFDIR)/common.o $(DEFDIR)/evalstring.o \
+                $(DEFDIR)/evalfile.o $(DEFDIR)/bashgetopt.o
+BUILTIN_OBJS = $(DEFDIR)/alias.o $(DEFDIR)/bind.o $(DEFDIR)/break.o \
+              $(DEFDIR)/builtin.o $(DEFDIR)/cd.o $(DEFDIR)/colon.o \
+              $(DEFDIR)/command.o $(DEFDIR)/caller.o $(DEFDIR)/declare.o \
+              $(DEFDIR)/echo.o $(DEFDIR)/enable.o $(DEFDIR)/eval.o \
+              $(DEFDIR)/exec.o $(DEFDIR)/exit.o $(DEFDIR)/fc.o \
+              $(DEFDIR)/fg_bg.o $(DEFDIR)/hash.o $(DEFDIR)/help.o \
+              $(DEFDIR)/history.o $(DEFDIR)/jobs.o $(DEFDIR)/kill.o \
+              $(DEFDIR)/let.o $(DEFDIR)/pushd.o $(DEFDIR)/read.o \
+              $(DEFDIR)/return.o $(DEFDIR)/shopt.o $(DEFDIR)/printf.o \
+              $(DEFDIR)/set.o $(DEFDIR)/setattr.o $(DEFDIR)/shift.o \
+              $(DEFDIR)/source.o $(DEFDIR)/suspend.o $(DEFDIR)/test.o \
+              $(DEFDIR)/times.o $(DEFDIR)/trap.o $(DEFDIR)/type.o \
+              $(DEFDIR)/ulimit.o $(DEFDIR)/umask.o $(DEFDIR)/wait.o \
+              $(DEFDIR)/getopts.o $(BUILTIN_C_OBJ)
+GETOPT_SOURCE   = $(DEFSRC)/getopt.c $(DEFSRC)/getopt.h
+PSIZE_SOURCE   = $(DEFSRC)/psize.sh $(DEFSRC)/psize.c
+
+BUILTINS_LIBRARY = $(DEFDIR)/libbuiltins.a
+BUILTINS_LIB = -lbuiltins
+BUILTINS_LDFLAGS = -L$(DEFDIR)
+BUILTINS_DEP = $(BUILTINS_LIBRARY)
+
+# Documentation for the shell.
+DOCSRC = $(srcdir)/doc
+DOCDIR = $(dot)/doc
+
+# Translations and other i18n support files
+PO_SRC = $(srcdir)/po/
+PO_DIR = $(dot)/po/
+
+SIGNAMES_SUPPORT = $(SUPPORT_SRC)mksignames.c
+
+SUPPORT_SRC = $(srcdir)/support/
+SDIR = $(dot)/support/
+
+TESTS_SUPPORT = recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT)
+CREATED_SUPPORT = signames.h recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT) \
+                 tests/recho$(EXEEXT) tests/zecho$(EXEEXT) \
+                 tests/printenv$(EXEEXT) mksignames$(EXEEXT) lsignames.h \
+                 mksyntax${EXEEXT} syntax.c $(VERSPROG) $(VERSOBJ) \
+                 buildversion.o
+CREATED_CONFIGURE = config.h config.cache config.status config.log \
+                   stamp-h po/POTFILES
+CREATED_MAKEFILES = Makefile builtins/Makefile doc/Makefile \
+                   lib/readline/Makefile lib/glob/Makefile \
+                   lib/sh/Makefile lib/tilde/Makefile lib/malloc/Makefile \
+                   lib/termcap/Makefile examples/loadables/Makefile \
+                   examples/loadables/perl/Makefile support/Makefile \
+                   lib/intl/Makefile po/Makefile po/Makefile.in
+
+# Keep GNU Make from exporting the entire environment for small machines.
+.NOEXPORT:
+
+.made: $(Program) bashbug
+       @echo "$(Program) last made for a $(Machine) running $(OS)" >.made
+
+$(Program):  .build $(OBJECTS) $(BUILTINS_DEP) $(LIBDEP)
+       $(RM) $@
+       $(PURIFY) $(CC) $(BUILTINS_LDFLAGS) $(LIBRARY_LDFLAGS) $(LDFLAGS) -o $(Program) $(OBJECTS) $(LIBS)
+       ls -l $(Program)
+       size $(Program)
+
+.build:        $(SOURCES) config.h Makefile version.h $(VERSPROG)
+       @echo
+       @echo "   ***********************************************************"
+       @echo "   *                                                         *"
+       @echo "   * `$(BUILD_DIR)/$(VERSPROG) -l`"
+       @echo "   *                                                         *"
+       @echo "   ***********************************************************"
+       @echo
+
+bashbug: $(SUPPORT_SRC)bashbug.sh config.h Makefile $(VERSPROG)
+       @sed -e "s%!MACHINE!%$(Machine)%" -e "s%!OS!%$(OS)%" \
+            -e "s%!CFLAGS!%$(CCFLAGS)%" -e "s%!CC!%$(CC)%" \
+            -e "s%!RELEASE!%$(Version)%" -e "s%!PATCHLEVEL!%$(PatchLevel)%" \
+            -e "s%!MACHTYPE!%$(MACHTYPE)%" -e "s%!RELSTATUS!%$(RELSTATUS)%" \
+            $(SUPPORT_SRC)bashbug.sh > $@
+       @chmod a+rx bashbug
+
+strip: $(Program) .made
+       strip $(Program)
+       ls -l $(Program)
+       size $(Program)
+
+lint:
+       ${MAKE} ${MFLAGS} CFLAGS='${GCC_LINT_FLAGS}' .made
+
+version.h:  $(SOURCES) config.h Makefile 
+       $(SHELL) $(SUPPORT_SRC)mkversion.sh -b -S ${topdir} -s $(RELSTATUS) -d $(Version) -o newversion.h \
+               && mv newversion.h version.h
+
+bashversion$(EXEEXT):  patchlevel.h conftypes.h version.h buildversion.o $(SUPPORT_SRC)bashversion.c
+       $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)bashversion.c buildversion.o
+
+buildversion.o: version.h conftypes.h patchlevel.h $(srcdir)/version.c
+       $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -DBUILDTOOL -c -o $@ $(srcdir)/version.c
+
+# old rules
+GRAM_H = parser-built
+y.tab.o: y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
+${GRAM_H}:     y.tab.h
+       @-if test -f y.tab.h ; then \
+               cmp -s $@ y.tab.h 2>/dev/null || cp -p y.tab.h $@; \
+       fi
+y.tab.c y.tab.h: parse.y
+#      -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
+       $(YACC) -d $(srcdir)/parse.y
+       touch parser-built
+#      -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; else cp -p y.tab.h ${GRAM_H}; fi
+
+# experimental new rules - work with GNU make but not BSD (or OSF) make
+#y.tab.o: y.tab.c y.tab.h
+#y.tab.c y.tab.h: parse.y command.h ${BASHINCDIR}/stdc.h input.h
+#      -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
+#      $(YACC) -d $(srcdir)/parse.y
+#      -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi
+
+$(READLINE_LIBRARY): config.h $(READLINE_SOURCE)
+       @echo making $@ in ${RL_LIBDIR}
+       @( { test "${RL_LIBDIR}" = "${libdir}" && exit 0; } || \
+               cd ${RL_LIBDIR} && $(MAKE) $(MFLAGS) libreadline.a) || exit 1
+
+$(HISTORY_LIBRARY): config.h $(HISTORY_SOURCE)
+       @echo making $@ in ${HIST_LIBDIR}
+       @( { test "${HIST_LIBDIR}" = "${libdir}" && exit 0; } || \
+               cd ${HIST_LIBDIR} && $(MAKE) $(MFLAGS) libhistory.a) || exit 1
+
+$(GLOB_LIBRARY): config.h $(GLOB_SOURCE)
+       @echo making $@ in ${GLOB_LIBDIR}
+       @(cd ${GLOB_LIBDIR} && \
+               $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libglob.a) || exit 1
+
+$(TILDE_LIBRARY): config.h $(TILDE_SOURCE)
+       @echo making $@ in ${TILDE_LIBDIR}
+       @(cd ${TILDE_LIBDIR} && \
+               $(MAKE) $(MFLAGS) libtilde.a) || exit 1
+
+$(TERMCAP_LIBRARY): config.h ${TERMCAP_SOURCE}
+       @echo making $@ in ${TERM_LIBDIR}       
+       @(cd ${TERM_LIBDIR} && \
+               $(MAKE) $(MFLAGS) libtermcap.a) || exit 1
+
+$(SHLIB_LIBRARY): config.h ${SHLIB_SOURCE}
+       @echo making $@ in ${SH_LIBDIR}
+       @(cd ${SH_LIBDIR} && \
+               $(MAKE) $(MFLAGS) DEBUG=${DEBUG} ${SHLIB_LIBNAME}) || exit 1
+
+${INTL_LIBRARY}: config.h ${INTL_LIBDIR}/Makefile
+       @echo making $@ in ${INTL_LIBDIR}
+       @(cd ${INTL_LIBDIR} && \
+               $(MAKE) $(MFLAGS) all) || exit 1
+
+${LIBINTL_H}:  ${INTL_LIBRARY}
+
+mksignames$(EXEEXT):   $(SUPPORT_SRC)mksignames.c
+       $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)mksignames.c
+
+mksyntax$(EXEEXT):     ${srcdir}/mksyntax.c config.h syntax.h ${BASHINCDIR}/chartypes.h
+       ${CC_FOR_BUILD} ${CCFLAGS_FOR_BUILD} -o $@ ${srcdir}/mksyntax.c
+
+# make a list of signals for the local system -- this is done when we're
+# *not* cross-compiling
+lsignames.h:   mksignames$(EXEEXT)
+       $(RM) $@
+       ./mksignames $@
+
+# copy the correct signames header file to signames.h
+signames.h: $(SIGNAMES_H)
+       -if cmp -s $(SIGNAMES_H) $@ ; then :; else $(RM) $@ ; $(CP) $(SIGNAMES_H) $@ ; fi
+
+syntax.c:      mksyntax${EXEEXT} $(srcdir)/syntax.h 
+       $(RM) $@
+       ./mksyntax -o $@
+
+$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h version.h
+       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libbuiltins.a ) || exit 1
+
+# these require special rules to circumvent make builtin rules
+${DEFDIR}/common.o:    $(BUILTIN_SRCDIR)/common.c
+       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} common.o) || exit 1
+
+${DEFDIR}/bashgetopt.o:        $(BUILTIN_SRCDIR)/bashgetopt.c
+       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} bashgetopt.o) || exit 1
+
+${DEFDIR}/builtext.h: $(BUILTIN_DEFS)
+       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) builtext.h ) || exit 1
+
+# For the justification of the following Makefile rules, see node
+# `Automatic Remaking' in GNU Autoconf documentation.
+
+Makefile makefile:     config.status $(srcdir)/Makefile.in
+       CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status
+
+pathnames.h:           config.status $(srcdir)/Makefile.in
+       CONFIG_HEADERS= $(SHELL) ./config.status
+
+Makefiles makefiles:   config.status $(srcdir)/Makefile.in
+       @for mf in $(CREATED_MAKEFILES); do \
+               CONFIG_FILES=$$mf CONFIG_HEADERS= $(SHELL) ./config.status ; \
+       done
+
+config.h:      stamp-h 
+
+stamp-h:       config.status $(srcdir)/config.h.in $(srcdir)/config-top.h $(srcdir)/config-bot.h
+       CONFIG_FILES= CONFIG_HEADERS=config.h $(SHELL) ./config.status
+
+config.status: $(srcdir)/configure
+       $(SHELL) ./config.status --recheck
+
+# comment out for distribution
+$(srcdir)/configure:   $(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/config.h.in
+       cd $(srcdir) && autoconf
+
+# for chet
+reconfig: force
+       sh $(srcdir)/configure
+
+#newversion:   mkversion
+#      $(RM) .build
+#      ./mkversion -dir $(srcdir) -dist
+#      mv -f newversion.h version.h
+#      $(MAKE) -f $(srcdir)/Makefile $(MFLAGS) srcdir=$(srcdir)
+
+doc documentation:  force
+       @(cd $(DOCDIR) ; $(MAKE) $(MFLAGS) )
+
+info dvi ps: force
+       @(cd $(DOCDIR) ; $(MAKE) $(MFLAGS) CFLAGS='$(CCFLAGS)' $@ )
+
+force:
+
+tags:  $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
+       etags $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
+
+TAGS:  $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
+       ctags -x $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) > $@
+
+# Targets that actually do things not part of the build
+
+installdirs:
+       @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(bindir)
+       @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(man1dir)
+       @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(infodir)
+       -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
+
+install:       .made installdirs
+       $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
+       $(INSTALL_SCRIPT) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
+       -( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
+               man1dir=$(man1dir) man1ext=$(man1ext) \
+               man3dir=$(man3dir) man3ext=$(man3ext) \
+               infodir=$(infodir) htmldir=$(htmldir) DESTDIR=$(DESTDIR) $@ )
+       -( cd $(DEFDIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
+       -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
+
+install-strip:
+       $(MAKE) $(MFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
+               prefix=${prefix} exec_prefix=${exec_prefix} \
+               DESTDIR=$(DESTDIR) install
+
+uninstall:     .made
+       $(RM) $(DESTDIR)$(bindir)/$(Program) $(DESTDIR)$(bindir)/bashbug
+       -( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
+               man1dir=$(man1dir) man1ext=$(man1ext) \
+               man3dir=$(man3dir) man3ext=$(man3ext) \
+               infodir=$(infodir) htmldir=$(htmldir) DESTDIR=$(DESTDIR) $@ )
+       -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
+
+.PHONY: basic-clean clean realclean maintainer-clean distclean mostlyclean maybe-clean
+
+LIB_SUBDIRS = ${RL_LIBDIR}  ${HIST_LIBDIR} ${TERM_LIBDIR} ${GLOB_LIBDIR} \
+               ${INTL_LIBDIR} ${TILDE_LIBDIR} ${ALLOC_LIBDIR} ${SH_LIBDIR}
+
+basic-clean:
+       $(RM) $(OBJECTS) $(Program) bashbug
+       $(RM) .build .made version.h pathnames.h
+
+clean: basic-clean
+       ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
+       ( cd builtins && $(MAKE) $(MFLAGS) $@ )
+       -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ )
+       -for libdir in ${LIB_SUBDIRS}; do \
+               (cd $$libdir && test -f Makefile && $(MAKE) $(MFLAGS) $@) ;\
+       done
+       -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
+       $(RM) $(CREATED_SUPPORT)
+
+mostlyclean: basic-clean
+       ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
+       ( cd builtins && $(MAKE) $(MFLAGS) $@ )
+       -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ )
+       -for libdir in ${LIB_SUBDIRS}; do \
+               (cd $$libdir && test -f Makefile && $(MAKE) $(MFLAGS) $@) ;\
+       done
+       -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
+
+distclean:     basic-clean maybe-clean
+       ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
+       ( cd builtins && $(MAKE) $(MFLAGS) $@ )
+       -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ )
+       -for libdir in ${LIB_SUBDIRS}; do \
+               (cd $$libdir && test -f Makefile && $(MAKE) $(MFLAGS) $@) ;\
+       done
+       -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
+       $(RM) $(CREATED_CONFIGURE) tags TAGS 
+       $(RM) $(CREATED_SUPPORT) Makefile $(CREATED_MAKEFILES)
+
+maintainer-clean:      basic-clean
+       @echo This command is intended for maintainers to use.
+       @echo It deletes files that may require special tools to rebuild.
+       $(RM) y.tab.c y.tab.h parser-built tags TAGS
+       ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ )
+       ( cd builtins && $(MAKE) $(MFLAGS) $@ )
+       ( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ )
+       -for libdir in ${LIB_SUBDIRS}; do \
+               (cd $$libdir && test -f Makefile && $(MAKE) $(MFLAGS) $@) ;\
+       done
+       -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
+       $(RM) $(CREATED_CONFIGURE) $(CREATED_MAKEFILES)
+       $(RM) $(CREATED_SUPPORT) Makefile
+
+maybe-clean:
+       -if test "X$(topdir)" != "X$(BUILD_DIR)" ; then \
+               $(RM) parser-built y.tab.c y.tab.h ; \
+       fi
+
+recho$(EXEEXT):                $(SUPPORT_SRC)recho.c
+       @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)recho.c
+
+zecho$(EXEEXT):                $(SUPPORT_SRC)zecho.c
+       @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)zecho.c
+
+printenv$(EXEEXT):     $(SUPPORT_SRC)printenv.c
+       @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.c
+
+test tests check:      force $(Program) $(TESTS_SUPPORT)
+       @-test -d tests || mkdir tests
+       @cp $(TESTS_SUPPORT) tests
+       @( cd $(srcdir)/tests && \
+               PATH=$$PATH:$(BUILD_DIR)/tests THIS_SH=$(THIS_SH) $(SHELL) ${TESTSCRIPT} )
+
+symlinks:
+       $(SHELL) $(SUPPORT_SRC)fixlinks -s $(srcdir)
+
+dist:  force
+       @echo Bash distributions are created using $(srcdir)/support/mkdist.
+       @echo Here is a sample of the necessary commands:
+       @echo $(Program) $(srcdir)/support/mkdist -m $(srcdir)/MANIFEST -s $(srcdir) -r ${PACKAGE} $(PACKAGE_VERSION)
+       @echo tar cf $(PACKAGE)-${PACKAGE_VERSION}.tar ${PACKAGE}-$(PACKAGE_VERSION)
+       @echo gzip $(PACKAGE)-$(PACKAGE_VERSION).tar
+
+depend:        depends
+
+depends: force
+       $(Program) $(SUPPORT_SRC)mkdep -c ${CC} -- ${CCFLAGS} ${CSOURCES}
+
+#### PRIVATE TARGETS ####
+hashtest:      hashlib.c
+       $(CC) -DTEST_HASHING $(CCFLAGS) -o $@ $(srcdir)/hashlib.c
+
+############################ DEPENDENCIES ###############################
+
+# Files that depend on the definitions in config-top.h, which are not meant
+# to be changed
+shell.o: config-top.h
+input.o: config-top.h
+y.tab.o: config-top.h
+jobs.o: config-top.h
+nojobs.o: config-top.h
+execute_cmd.o: config-top.h
+variables.o: config-top.h
+builtins/command.o: config-top.h
+builtins/common.o: config-top.h
+builtins/break.o: config-top.h
+builtins/echo.o: config-top.h
+builtins/evalstring.o: config-top.h
+builtins/exit.o: config-top.h
+builtins/kill.o: config-top.h
+
+# shell basics
+copy_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+copy_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+copy_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+copy_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+dispose_cmd.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+dispose_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h
+dispose_cmd.o: error.h general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+dispose_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+dispose_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+dispose_cmd.o: ${BASHINCDIR}/ocache.h
+error.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h flags.h ${BASHINCDIR}/stdc.h error.h
+error.o: command.h general.h xmalloc.h externs.h input.h bashhist.h
+error.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+error.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+error.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+error.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+error.o: input.h execute_cmd.h 
+eval.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h trap.h flags.h ${DEFSRC}/common.h
+eval.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+eval.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+eval.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+eval.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+eval.o: input.h execute_cmd.h 
+execute_cmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+execute_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+execute_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+execute_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+execute_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+execute_cmd.o: ${BASHINCDIR}/memalloc.h ${GRAM_H} flags.h builtins.h jobs.h quit.h siglist.h
+execute_cmd.o: execute_cmd.h findcmd.h redir.h trap.h test.h pathexp.h
+execute_cmd.o: $(DEFSRC)/common.h ${DEFDIR}/builtext.h ${GLOB_LIBSRC}/strmatch.h
+execute_cmd.o: ${BASHINCDIR}/posixtime.h ${BASHINCDIR}/chartypes.h
+expr.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h 
+expr.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+expr.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+expr.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+expr.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+expr.o: ${BASHINCDIR}/chartypes.h
+findcmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h
+findcmd.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/memalloc.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h
+findcmd.o: ${BASHINCDIR}/stdc.h error.h general.h xmalloc.h variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h
+findcmd.o: dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h externs.h
+findcmd.o: flags.h hashlib.h pathexp.h hashcmd.h 
+findcmd.o: ${BASHINCDIR}/chartypes.h
+flags.o: config.h flags.h 
+flags.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+flags.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+flags.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+flags.o: make_cmd.h subst.h sig.h pathnames.h externs.h bashhist.h
+general.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+general.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+general.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+general.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+general.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+general.o: ${BASHINCDIR}/maxpath.h ${BASHINCDIR}/posixtime.h
+general.o: ${BASHINCDIR}/chartypes.h
+hashcmd.o: config.h ${BASHINCDIR}/posixstat.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+hashcmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+hashcmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashcmd.h
+hashcmd.o: execute_cmd.h findcmd.h ${BASHINCDIR}/stdc.h hashlib.h
+hashlib.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+hashlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+hashlib.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+hashlib.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+hashlib.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+input.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+input.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h input.h error.h externs.h
+list.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+list.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+list.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+list.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+locale.o: config.h bashtypes.h bashintl.h ${LIBINTL_H} bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+locale.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+locale.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+locale.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+locale.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+locale.o: ${BASHINCDIR}/chartypes.h
+mailcheck.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+mailcheck.o: ${BASHINCDIR}/posixtime.h
+mailcheck.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+mailcheck.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+mailcheck.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+mailcheck.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+mailcheck.o: execute_cmd.h mailcheck.h 
+make_cmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h bashansi.h
+make_cmd.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h error.h flags.h make_cmd.h
+make_cmd.o: variables.h arrayfunc.h conftypes.h array.h hashlib.h subst.h input.h externs.h
+make_cmd.o: jobs.h quit.h siglist.h syntax.h dispose_cmd.h
+make_cmd.o: ${BASHINCDIR}/shmbutil.h ${BASHINCDIR}/ocache.h
+y.tab.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/memalloc.h
+y.tab.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+y.tab.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+y.tab.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+y.tab.o: make_cmd.h subst.h sig.h pathnames.h externs.h test.h
+y.tab.o: trap.h flags.h parser.h input.h mailcheck.h $(DEFSRC)/common.h
+y.tab.o: $(DEFDIR)/builtext.h bashline.h bashhist.h jobs.h siglist.h alias.h
+pathexp.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+pathexp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+pathexp.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+pathexp.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+pathexp.o: make_cmd.h subst.h sig.h pathnames.h externs.h
+pathexp.o: pathexp.h flags.h 
+pathexp.o: $(GLOB_LIBSRC)/glob.h $(GLOB_LIBSRC)/strmatch.h
+pathexp.o: ${BASHINCDIR}/shmbutil.h
+print_cmd.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+print_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+print_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+print_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+print_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+print_cmd.o: ${GRAM_H} $(DEFSRC)/common.h
+redir.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/filecntl.h
+redir.o: ${BASHINCDIR}/memalloc.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+redir.o: general.h xmalloc.h variables.h arrayfunc.h conftypes.h array.h hashlib.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h
+redir.o: dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h externs.h 
+redir.o: flags.h execute_cmd.h redir.h input.h
+shell.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/filecntl.h
+shell.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+shell.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+shell.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+shell.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+shell.o: flags.h trap.h mailcheck.h builtins.h $(DEFSRC)/common.h
+shell.o: jobs.h siglist.h input.h execute_cmd.h findcmd.h bashhist.h
+shell.o: ${GLOB_LIBSRC}/strmatch.h ${BASHINCDIR}/posixtime.h
+sig.o: config.h bashtypes.h
+sig.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+sig.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+sig.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+sig.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+sig.o: jobs.h siglist.h trap.h $(DEFSRC)/common.h bashline.h bashhist.h
+siglist.o: config.h bashtypes.h siglist.h trap.h
+stringlib.o: bashtypes.h ${BASHINCDIR}/chartypes.h
+stringlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+stringlib.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+stringlib.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+stringlib.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+stringlib.o: ${GLOB_LIBSRC}/glob.h ${GLOB_LIBSRC}/strmatch.h
+subst.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/posixstat.h
+subst.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+subst.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+subst.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+subst.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+subst.o: flags.h jobs.h siglist.h execute_cmd.h ${BASHINCDIR}/filecntl.h trap.h pathexp.h
+subst.o: mailcheck.h input.h $(DEFSRC)/getopt.h $(DEFSRC)/common.h
+subst.o: bashline.h bashhist.h ${GLOB_LIBSRC}/strmatch.h
+subst.o: ${BASHINCDIR}/chartypes.h
+subst.o: ${BASHINCDIR}/shmbutil.h
+test.o: bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+test.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+test.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+test.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+test.o: make_cmd.h subst.h sig.h pathnames.h externs.h test.h
+test.o: ${DEFSRC}/common.h 
+trap.o: config.h bashtypes.h trap.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+trap.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+trap.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+trap.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+trap.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+trap.o: signames.h $(DEFSRC)/common.h
+trap.o: ${DEFDIR}/builtext.h
+unwind_prot.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h command.h ${BASHINCDIR}/stdc.h
+unwind_prot.o: general.h xmalloc.h unwind_prot.h quit.h sig.h
+variables.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+variables.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+variables.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+variables.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+variables.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+variables.o: flags.h execute_cmd.h mailcheck.h input.h $(DEFSRC)/common.h
+variables.o: findcmd.h bashhist.h hashcmd.h pathexp.h
+variables.o: pcomplete.h  ${BASHINCDIR}/chartypes.h
+variables.o: ${BASHINCDIR}/posixtime.h
+version.o:  conftypes.h patchlevel.h version.h
+xmalloc.o: config.h bashtypes.h ${BASHINCDIR}/ansi_stdlib.h error.h
+
+# job control
+
+jobs.o: config.h bashtypes.h trap.h ${BASHINCDIR}/filecntl.h input.h ${BASHINCDIR}/shtty.h
+jobs.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+jobs.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+jobs.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+jobs.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+jobs.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+jobs.o: jobs.h flags.h $(DEFSRC)/common.h $(DEFDIR)/builtext.h
+jobs.o: ${BASHINCDIR}/posixwait.h ${BASHINCDIR}/unionwait.h
+jobs.o: ${BASHINCDIR}/posixtime.h
+nojobs.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h bashjmp.h ${BASHINCDIR}/posixjmp.h
+nojobs.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h jobs.h quit.h siglist.h externs.h
+nojobs.o: sig.h error.h ${BASHINCDIR}/shtty.h input.h
+
+# shell features that may be compiled in
+
+array.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+array.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+array.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+array.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+array.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+array.o: $(DEFSRC)/common.h
+arrayfunc.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+arrayfunc.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+arrayfunc.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+arrayfunc.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+arrayfunc.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+arrayfunc.o: $(DEFSRC)/common.h
+arrayfunc.o: ${BASHINCDIR}/shmbutil.h
+braces.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+braces.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+braces.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+braces.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+braces.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+braces.o: ${BASHINCDIR}/shmbutil.h
+alias.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h command.h ${BASHINCDIR}/stdc.h
+alias.o: general.h xmalloc.h bashtypes.h externs.h alias.h
+alias.o: pcomplete.h 
+alias.o: ${BASHINCDIR}/chartypes.h
+
+pcomplib.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h bashtypes.h
+pcomplib.o: ${BASHINCDIR}/stdc.h hashlib.h pcomplete.h shell.h syntax.h
+pcomplib.o: bashjmp.h command.h general.h xmalloc.h error.h variables.h arrayfunc.h conftypes.h quit.h
+pcomplib.o: unwind_prot.h dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h
+pcomplib.o: externs.h ${BASHINCDIR}/maxpath.h
+
+pcomplete.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h bashtypes.h
+pcomplete.o: ${BASHINCDIR}/stdc.h hashlib.h pcomplete.h shell.h syntax.h
+pcomplete.o: bashjmp.h command.h general.h xmalloc.h error.h variables.h arrayfunc.h conftypes.h quit.h
+pcomplete.o: unwind_prot.h dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h
+pcomplete.o: externs.h ${BASHINCDIR}/maxpath.h execute_cmd.h 
+
+# library support files
+
+bashhist.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/posixstat.h
+bashhist.o: ${BASHINCDIR}/filecntl.h
+bashhist.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+bashhist.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+bashhist.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+bashhist.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+bashhist.o: flags.h input.h parser.h pathexp.h $(DEFSRC)/common.h bashline.h
+bashhist.o: $(GLOB_LIBSRC)/strmatch.h
+bashline.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+bashline.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+bashline.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+bashline.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+bashline.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+bashline.o: builtins.h bashhist.h bashline.h execute_cmd.h findcmd.h pathexp.h
+bashline.o: $(DEFSRC)/common.h $(GLOB_LIBSRC)/glob.h alias.h
+bashline.o: pcomplete.h ${BASHINCDIR}/chartypes.h input.h
+bracecomp.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+bracecomp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
+bracecomp.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
+bracecomp.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+bracecomp.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+bracecomp.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h hashlib.h builtins.h general.h xmalloc.h
+bracecomp.o: quit.h alias.h config.h  variables.h arrayfunc.h conftypes.h
+bracecomp.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+
+# library dependencies
+
+bashline.o: $(RL_LIBSRC)/rlconf.h
+bashline.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
+bashline.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
+bracecomp.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h
+bracecomp.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h
+y.tab.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h
+y.tab.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h
+subst.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h
+subst.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h
+
+shell.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+subst.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+bashline.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+bashhist.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+y.tab.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h
+
+execute_cmd.o: $(TILDE_LIBSRC)/tilde.h
+general.o: $(TILDE_LIBSRC)/tilde.h
+mailcheck.o: $(TILDE_LIBSRC)/tilde.h
+shell.o: $(TILDE_LIBSRC)/tilde.h
+subst.o: $(TILDE_LIBSRC)/tilde.h
+variables.o: $(TILDE_LIBSRC)/tilde.h
+
+# libintl dependencies
+arrayfunc.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+bashhist.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+bashline.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+braces.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+error.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+eval.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+execute_cmd.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+expr.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+general.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+input.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+jobs.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+mailcheck.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+make_cmd.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+nojobs.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+parse.y: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+pcomplete.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+pcomplib.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+print_cmd.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+redir.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+shell.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+sig.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+siglist.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+subst.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+test.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+trap.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+variables.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+version.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+xmalloc.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+
+# XXX - dependencies checked through here
+
+# builtin c sources
+builtins/bashgetopt.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/bashgetopt.o: shell.h syntax.h config.h bashjmp.h command.h general.h xmalloc.h error.h
+builtins/bashgetopt.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+builtins/bashgetopt.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+builtins/bashgetopt.o: $(DEFSRC)/common.h
+builtins/bashgetopt.o: ${BASHINCDIR}/chartypes.h
+builtins/common.o: bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/common.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h
+builtins/common.o: ${BASHINCDIR}/memalloc.h variables.h arrayfunc.h conftypes.h input.h siglist.h
+builtins/common.o: quit.h unwind_prot.h ${BASHINCDIR}/maxpath.h jobs.h builtins.h
+builtins/common.o: dispose_cmd.h make_cmd.h subst.h externs.h bashhist.h 
+builtins/common.o: execute_cmd.h ${BASHINCDIR}/stdc.h general.h xmalloc.h error.h pathnames.h
+builtins/common.o: ${DEFDIR}/builtext.h
+builtins/common.o: ${BASHINCDIR}/chartypes.h
+builtins/evalfile.o: bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/evalfile.o: shell.h syntax.h config.h bashjmp.h command.h general.h xmalloc.h error.h
+builtins/evalfile.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+builtins/evalfile.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+builtins/evalfile.o: jobs.h builtins.h flags.h input.h execute_cmd.h
+builtins/evalfile.o: bashhist.h $(DEFSRC)/common.h
+builtins/evalstring.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/evalstring.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h siglist.h
+builtins/evalstring.o: ${BASHINCDIR}/memalloc.h variables.h arrayfunc.h conftypes.h input.h
+builtins/evalstring.o: quit.h unwind_prot.h ${BASHINCDIR}/maxpath.h jobs.h builtins.h
+builtins/evalstring.o: dispose_cmd.h make_cmd.h subst.h externs.h 
+builtins/evalstring.o: jobs.h builtins.h flags.h input.h execute_cmd.h
+builtins/evalstring.o: bashhist.h $(DEFSRC)/common.h
+builtins/getopt.o: config.h ${BASHINCDIR}/memalloc.h
+builtins/getopt.o: shell.h syntax.h bashjmp.h command.h general.h xmalloc.h error.h
+builtins/getopt.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
+builtins/getopt.o: make_cmd.h subst.h sig.h pathnames.h externs.h 
+builtins/getopt.o: $(DEFSRC)/getopt.h
+builtins/mkbuiltins.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+builtins/mkbuiltins.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+
+# builtin def files
+builtins/alias.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/alias.o: quit.h $(DEFSRC)/common.h
+builtins/alias.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h ${BASHINCDIR}/stdc.h unwind_prot.h
+builtins/alias.o: dispose_cmd.h make_cmd.h subst.h externs.h variables.h arrayfunc.h conftypes.h 
+builtins/bind.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/bind.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/bind.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/bind.o: $(DEFSRC)/bashgetopt.h
+builtins/break.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/break.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/break.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/builtin.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/builtin.o: quit.h $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h
+builtins/builtin.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/builtin.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/caller.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/caller.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/caller.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/caller.o: $(DEFSRC)/common.h quit.h 
+builtins/caller.o: ${BASHINCDIR}/chartypes.h bashtypes.h
+builtins/caller.o: ${DEFDIR}/builtext.h
+builtins/cd.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/cd.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/cd.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/cd.o: $(DEFSRC)/common.h quit.h 
+builtins/command.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/command.o: quit.h $(DEFSRC)/bashgetopt.h
+builtins/command.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/command.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/declare.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/declare.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/declare.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/declare.o: $(DEFSRC)/bashgetopt.h
+builtins/echo.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/echo.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/echo.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/enable.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/enable.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/enable.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/enable.o: pcomplete.h 
+builtins/eval.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/eval.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h 
+builtins/eval.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/exec.o: bashtypes.h 
+builtins/exec.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/exec.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/exec.o: dispose_cmd.h make_cmd.h subst.h externs.h execute_cmd.h 
+builtins/exec.o: findcmd.h flags.h quit.h $(DEFSRC)/common.h ${BASHINCDIR}/stdc.h
+builtins/exit.o: bashtypes.h 
+builtins/exit.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/exit.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/exit.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/fc.o: bashtypes.h ${BASHINCDIR}/posixstat.h
+builtins/fc.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h builtins.h command.h ${BASHINCDIR}/stdc.h 
+builtins/fc.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/fc.o: flags.h unwind_prot.h variables.h arrayfunc.h conftypes.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h 
+builtins/fc.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h quit.h 
+builtins/fc.o: $(DEFSRC)/bashgetopt.h bashhist.h
+builtins/fc.o: ${BASHINCDIR}/chartypes.h
+builtins/fg_bg.o: bashtypes.h $(DEFSRC)/bashgetopt.h 
+builtins/fg_bg.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/fg_bg.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/fg_bg.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/getopts.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/getopts.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h 
+builtins/getopts.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/hash.o: bashtypes.h 
+builtins/hash.o: builtins.h command.h findcmd.h ${BASHINCDIR}/stdc.h $(DEFSRC)/common.h
+builtins/hash.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/hash.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h 
+builtins/help.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/help.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/help.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h
+builtins/help.o: $(GLOB_LIBSRC)/glob.h 
+builtins/history.o: bashtypes.h 
+builtins/history.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/history.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/history.o: ${BASHINCDIR}/filecntl.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h
+builtins/history.o: bashhist.h variables.h arrayfunc.h conftypes.h 
+builtins/inlib.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/inlib.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h 
+builtins/inlib.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/jobs.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/jobs.o: quit.h $(DEFSRC)/bashgetopt.h
+builtins/jobs.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/jobs.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/kill.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/kill.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/kill.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h trap.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/let.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/let.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/let.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/printf.o: config.h ${BASHINCDIR}/memalloc.h bashjmp.h command.h error.h
+builtins/printf.o: general.h xmalloc.h quit.h dispose_cmd.h make_cmd.h subst.h
+builtins/printf.o: externs.h sig.h pathnames.h shell.h syntax.h unwind_prot.h
+builtins/printf.o: variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/stdc.h $(DEFSRC)/bashgetopt.h
+builtins/printf.o: ${BASHINCDIR}/chartypes.h
+builtins/pushd.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/pushd.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/pushd.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/pushd.o: $(DEFSRC)/common.h
+builtins/read.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/read.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/read.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/return.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/return.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/return.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/set.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/set.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/set.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h flags.h
+builtins/setattr.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/setattr.o: quit.h $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h
+builtins/setattr.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/setattr.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/shift.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/shift.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/shift.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/shift.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/shopt.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h
+builtins/shopt.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h
+builtins/shopt.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h unwind_prot.h variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/maxpath.h
+builtins/shopt.o: $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h
+builtins/source.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/source.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/source.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/source.o: findcmd.h $(DEFSRC)/bashgetopt.h flags.h trap.h
+builtins/suspend.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/suspend.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/suspend.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/test.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/test.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/test.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/test.o: test.h 
+builtins/times.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/times.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/times.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/trap.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/trap.o: quit.h $(DEFSRC)/common.h
+builtins/trap.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/trap.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/type.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/type.o: quit.h $(DEFSRC)/common.h findcmd.h
+builtins/type.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/type.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/ulimit.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/ulimit.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/ulimit.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/umask.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/umask.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/umask.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
+builtins/umask.o: ${BASHINCDIR}/chartypes.h
+builtins/wait.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/wait.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/wait.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/wait.o: ${BASHINCDIR}/chartypes.h
+
+builtins/complete.o: config.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h
+builtins/complete.o: unwind_prot.h variables.h arrayfunc.h conftypes.h
+builtins/complete.o: bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+builtins/complete.o: builtins.h 
+builtins/complete.o: pcomplete.h
+builtins/complete.o: ${DEFSRC}/common.h ${DEFSRC}/bashgetopt.h
+
+# libintl dependencies
+builtins/bind.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/break.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/caller.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/cd.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/common.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/complete.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/declare.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/enable.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/evalfile.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/exec.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/exit.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/fc.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/fg_bg.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/getopt.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/hash.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/help.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/history.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/inlib.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/jobs.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/kill.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/let.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/mkbuiltins.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/printf.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/pushd.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/read.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/return.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/set.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/setattr.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/shift.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/shopt.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/source.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/suspend.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/type.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/ulimit.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/umask.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+
+# builtin library dependencies
+builtins/bind.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h
+builtins/bind.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h
+
+builtins/bind.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
+builtins/fc.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
+builtins/history.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h
+
+builtins/common.o: $(TILDE_LIBSRC)/tilde.h
+builtins/cd.o: $(TILDE_LIBSRC)/tilde.h 
+
+builtins/alias.o: $(DEFSRC)/alias.def
+builtins/bind.o: $(DEFSRC)/bind.def
+builtins/break.o: $(DEFSRC)/break.def
+builtins/builtin.o: $(DEFSRC)/builtin.def
+builtins/caller.o: $(DEFSRC)/caller.def
+builtins/cd.o: $(DEFSRC)/cd.def
+builtins/colon.o: $(DEFSRC)/colon.def
+builtins/command.o: $(DEFSRC)/command.def
+builtins/complete.o: $(DEFSRC)/complete.def
+builtins/declare.o: $(DEFSRC)/declare.def
+builtins/echo.o: $(DEFSRC)/echo.def
+builtins/enable.o: $(DEFSRC)/enable.def
+builtins/eval.o: $(DEFSRC)/eval.def
+builtins/exec.o: $(DEFSRC)/exec.def
+builtins/exit.o: $(DEFSRC)/exit.def
+builtins/fc.o: $(DEFSRC)/fc.def
+builtins/fg_bg.o: $(DEFSRC)/fg_bg.def
+builtins/getopts.o: $(DEFSRC)/getopts.def
+builtins/hash.o: $(DEFSRC)/hash.def
+builtins/help.o: $(DEFSRC)/help.def
+builtins/history.o: $(DEFSRC)/history.def
+builtins/inlib.o: $(DEFSRC)/inlib.def
+builtins/jobs.o: $(DEFSRC)/jobs.def
+builtins/kill.o: $(DEFSRC)/kill.def
+builtins/let.o: $(DEFSRC)/let.def
+builtins/pushd.o: $(DEFSRC)/pushd.def
+builtins/read.o: $(DEFSRC)/read.def
+builtins/reserved.o: $(DEFSRC)/reserved.def
+builtins/return.o: $(DEFSRC)/return.def
+builtins/set.o: $(DEFSRC)/set.def
+builtins/setattr.o: $(DEFSRC)/setattr.def
+builtins/shift.o: $(DEFSRC)/shift.def
+builtins/shopt.o: $(DEFSRC)/shopt.def
+builtins/source.o: $(DEFSRC)/source.def
+builtins/suspend.o: $(DEFSRC)/suspend.def
+builtins/test.o: $(DEFSRC)/test.def
+builtins/times.o: $(DEFSRC)/times.def
+builtins/trap.o: $(DEFSRC)/trap.def
+builtins/type.o: $(DEFSRC)/type.def
+builtins/ulimit.o: $(DEFSRC)/ulimit.def
+builtins/umask.o: $(DEFSRC)/umask.def
+builtins/wait.o: $(DEFSRC)/wait.def
index ff4eb31f17c70083ccd88e5fbed2ced5bc2ebecf..fa2b495fa36338312b98067d660335016a8a54dd 100644 (file)
@@ -1,7 +1,7 @@
 @%:@! /bin/sh
-@%:@ From configure.in for Bash 3.0, version 3.168, from autoconf version AC_ACVERSION.
+@%:@ From configure.in for Bash 3.0, version 3.169, from autoconf version AC_ACVERSION.
 @%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.57 for bash 3.0-release.
+@%:@ Generated by GNU Autoconf 2.57 for bash 3.1-devel.
 @%:@
 @%:@ Report bugs to <bug-bash@gnu.org>.
 @%:@ 
@@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='bash'
 PACKAGE_TARNAME='bash'
-PACKAGE_VERSION='3.0-release'
-PACKAGE_STRING='bash 3.0-release'
+PACKAGE_VERSION='3.1-devel'
+PACKAGE_STRING='bash 3.1-devel'
 PACKAGE_BUGREPORT='bug-bash@gnu.org'
 
 ac_unique_file="shell.h"
@@ -784,7 +784,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 3.0-release to adapt to many kinds of systems.
+\`configure' configures bash 3.1-devel to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -845,7 +845,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bash 3.0-release:";;
+     short | recursive ) echo "Configuration of bash 3.1-devel:";;
    esac
   cat <<\_ACEOF
 
@@ -1000,7 +1000,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-bash configure 3.0-release
+bash configure 3.1-devel
 generated by GNU Autoconf 2.57
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
@@ -1015,7 +1015,7 @@ cat >&5 <<_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 3.0-release, which was
+It was created by bash $as_me 3.1-devel, which was
 generated by GNU Autoconf 2.57.  Invocation command line was
 
   $ $0 $@
@@ -1383,8 +1383,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
           ac_config_headers="$ac_config_headers config.h"
 
 
-BASHVERS=3.0
-RELSTATUS=release
+BASHVERS=3.1
+RELSTATUS=devel
 
 case "$RELSTATUS" in
 alp*|bet*|dev*|rc*)    DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -11534,7 +11534,8 @@ done
 
 
 
-for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr
+
+for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -24445,7 +24446,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by bash $as_me 3.0-release, which was
+This file was extended by bash $as_me 3.1-devel, which was
 generated by GNU Autoconf 2.57.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -24508,7 +24509,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-bash config.status 3.0-release
+bash config.status 3.1-devel
 configured by $0, generated by GNU Autoconf 2.57,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
index 90908ed31e972690f516686d926049c58063bc3e..ada1957639af8bc25a7b4d191fe12a844ad19ed3 100644 (file)
                         'configure.in'
                       ],
                       {
-                        'AH_OUTPUT' => 1,
+                        'AC_PROG_GCC_TRADITIONAL' => 1,
+                        'AC_PROG_AWK' => 1,
+                        'AC_INIT' => 1,
+                        'AC_FUNC_REALLOC' => 1,
                         'AC_FUNC_UTIME_NULL' => 1,
+                        'AC_FUNC_VPRINTF' => 1,
+                        'AC_FUNC_STRTOD' => 1,
+                        'm4_include' => 1,
+                        'AC_FUNC_STRFTIME' => 1,
+                        'AM_GNU_GETTEXT' => 1,
                         'AC_TYPE_OFF_T' => 1,
-                        'AC_FUNC_SELECT_ARGTYPES' => 1,
-                        'AC_PROG_AWK' => 1,
+                        'AC_C_CONST' => 1,
+                        'AH_OUTPUT' => 1,
+                        'AC_FUNC_STAT' => 1,
                         'AM_AUTOMAKE_VERSION' => 1,
-                        'AC_CANONICAL_HOST' => 1,
-                        'AC_CHECK_LIB' => 1,
-                        'AC_CHECK_TYPES' => 1,
-                        'AC_FUNC_STRFTIME' => 1,
+                        'AC_STRUCT_TM' => 1,
                         'AC_FUNC_SETPGRP' => 1,
-                        'AC_SUBST' => 1,
-                        'AC_FUNC_STRTOD' => 1,
+                        'AC_PATH_X' => 1,
                         'AM_PROG_CC_C_O' => 1,
-                        'AC_PROG_INSTALL' => 1,
-                        'AC_PROG_MAKE_SET' => 1,
+                        'AC_FUNC_CHOWN' => 1,
+                        'AC_FUNC_ALLOCA' => 1,
+                        'AC_PROG_LN_S' => 1,
+                        'AC_CANONICAL_SYSTEM' => 1,
+                        'm4_pattern_allow' => 1,
                         'AM_INIT_AUTOMAKE' => 1,
-                        'AC_CONFIG_FILES' => 1,
-                        'AC_TYPE_MODE_T' => 1,
+                        'AC_FUNC_SELECT_ARGTYPES' => 1,
+                        'AC_FUNC_MBRTOWC' => 1,
+                        'AC_LIBSOURCE' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        'AC_HEADER_DIRENT' => 1,
+                        'AC_FUNC_STRERROR_R' => 1,
+                        'AC_C_INLINE' => 1,
                         'AC_TYPE_PID_T' => 1,
-                        'AC_FUNC_OBSTACK' => 1,
-                        'AC_FUNC_GETPGRP' => 1,
-                        'AC_PROG_GCC_TRADITIONAL' => 1,
-                        'AC_HEADER_STDC' => 1,
-                        'AC_FUNC_ALLOCA' => 1,
-                        'AM_GNU_GETTEXT' => 1,
-                        'AM_MAINTAINER_MODE' => 1,
+                        'AC_HEADER_MAJOR' => 1,
                         'AC_CHECK_FUNCS' => 1,
+                        'AC_PROG_MAKE_SET' => 1,
+                        'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
+                        'AC_TYPE_UID_T' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AC_FUNC_GETLOADAVG' => 1,
+                        'AC_HEADER_STDC' => 1,
                         'AC_TYPE_SIGNAL' => 1,
-                        'AC_FUNC_STRNLEN' => 1,
-                        'AC_HEADER_DIRENT' => 1,
-                        'AC_STRUCT_TM' => 1,
-                        'AC_CHECK_MEMBERS' => 1,
-                        'AC_FUNC_STRCOLL' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_FUNC_MEMCMP' => 1,
-                        'AC_PATH_X' => 1,
                         'include' => 1,
-                        'AC_LIBSOURCE' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AC_FUNC_VPRINTF' => 1,
-                        'AC_FUNC_MBRTOWC' => 1,
-                        'AC_FUNC_SETVBUF_REVERSED' => 1,
-                        'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
-                        'AC_FUNC_STAT' => 1,
+                        'AC_PROG_RANLIB' => 1,
+                        'AC_HEADER_STAT' => 1,
+                        'AC_DECL_SYS_SIGLIST' => 1,
+                        'AC_FUNC_MALLOC' => 1,
+                        'AC_FUNC_FORK' => 1,
+                        'AC_CONFIG_AUX_DIR' => 1,
+                        'AC_SUBST' => 1,
+                        'AC_FUNC_MEMCMP' => 1,
                         'AC_FUNC_WAIT3' => 1,
-                        'AC_CANONICAL_SYSTEM' => 1,
-                        'AC_HEADER_TIME' => 1,
+                        'AC_FUNC_SETVBUF_REVERSED' => 1,
+                        'AC_PROG_CPP' => 1,
+                        'AC_FUNC_GETGROUPS' => 1,
+                        'AC_CANONICAL_HOST' => 1,
+                        'AC_FUNC_CLOSEDIR_VOID' => 1,
                         'AC_PROG_YACC' => 1,
-                        'AC_FUNC_REALLOC' => 1,
-                        'AC_CHECK_HEADERS' => 1,
-                        'AC_PROG_CXX' => 1,
-                        'AC_REPLACE_FNMATCH' => 1,
-                        'm4_pattern_allow' => 1,
+                        'AC_STRUCT_ST_BLOCKS' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AC_FUNC_FSEEKO' => 1,
+                        'AC_CONFIG_FILES' => 1,
+                        'AC_PROG_INSTALL' => 1,
+                        'AC_FUNC_STRNLEN' => 1,
+                        'AC_CONFIG_HEADERS' => 1,
+                        'AC_CHECK_TYPES' => 1,
+                        'AC_CHECK_MEMBERS' => 1,
+                        'AM_MAINTAINER_MODE' => 1,
+                        'AC_CHECK_LIB' => 1,
                         'AC_TYPE_SIZE_T' => 1,
+                        'AC_STRUCT_TIMEZONE' => 1,
                         'AC_FUNC_MKTIME' => 1,
+                        'AC_FUNC_GETMNTENT' => 1,
                         'AC_PROG_LEX' => 1,
+                        'AC_HEADER_SYS_WAIT' => 1,
+                        'AC_FUNC_MMAP' => 1,
+                        'AC_FUNC_GETPGRP' => 1,
+                        'AC_C_VOLATILE' => 1,
+                        'AC_TYPE_MODE_T' => 1,
+                        'AC_CHECK_HEADERS' => 1,
+                        'AC_FUNC_LSTAT' => 1,
                         'AC_CONFIG_SUBDIRS' => 1,
+                        'AC_FUNC_STRCOLL' => 1,
+                        'AC_REPLACE_FNMATCH' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
+                        'AC_HEADER_TIME' => 1,
+                        'AC_PROG_CXX' => 1,
                         'AC_PROG_CC' => 1,
-                        'AC_INIT' => 1,
-                        'AC_CONFIG_HEADERS' => 1,
                         'AC_FUNC_ERROR_AT_LINE' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        'AC_PROG_CPP' => 1,
-                        'AC_TYPE_UID_T' => 1,
-                        'AC_HEADER_MAJOR' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AC_FUNC_LSTAT' => 1,
-                        'AC_C_CONST' => 1,
-                        'AC_FUNC_CHOWN' => 1,
-                        'AC_STRUCT_ST_BLOCKS' => 1,
-                        'AC_FUNC_STRERROR_R' => 1,
-                        'AC_FUNC_FORK' => 1,
-                        'AC_FUNC_MMAP' => 1,
-                        'AC_DECL_SYS_SIGLIST' => 1,
-                        'AC_FUNC_GETMNTENT' => 1,
-                        'AC_FUNC_FSEEKO' => 1,
-                        'AC_FUNC_MALLOC' => 1,
-                        'AC_FUNC_GETLOADAVG' => 1,
-                        'AC_PROG_LN_S' => 1,
-                        'AC_CONFIG_AUX_DIR' => 1,
-                        'AC_C_VOLATILE' => 1,
-                        'AC_PROG_RANLIB' => 1,
-                        'AC_C_INLINE' => 1,
-                        'AC_FUNC_CLOSEDIR_VOID' => 1,
-                        'AC_HEADER_SYS_WAIT' => 1,
-                        'm4_include' => 1,
-                        'AC_HEADER_STAT' => 1,
-                        'AC_FUNC_GETGROUPS' => 1,
-                        'AC_STRUCT_TIMEZONE' => 1
+                        'AC_FUNC_OBSTACK' => 1
                       }
                     ], 'Request' )
            );
index 735deae372a89b37ffc4440f9d9b278e6a7fd579..2aa1b3fabe8bfae255d12b3e1a6f500518b2d375 100644 (file)
@@ -1,4 +1,4 @@
-m4trace:configure.in:30: -1- AC_INIT([bash], [3.0-release], [bug-bash@gnu.org])
+m4trace:configure.in:30: -1- AC_INIT([bash], [3.1-devel], [bug-bash@gnu.org])
 m4trace:configure.in:30: -1- m4_pattern_forbid([^_?A[CHUM]_])
 m4trace:configure.in:30: -1- m4_pattern_forbid([_AC_])
 m4trace:configure.in:30: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
@@ -729,7 +729,8 @@ m4trace:configure.in:649: -1- AC_LIBSOURCE([strftime.c])
 m4trace:configure.in:649: -1- AC_LIBSOURCE([strpbrk.c])
 m4trace:configure.in:649: -1- AC_LIBSOURCE([memset.c])
 m4trace:configure.in:649: -1- AC_LIBSOURCE([strstr.c])
-m4trace:configure.in:649: -1- AC_CHECK_FUNCS([getcwd strcasecmp strerror strftime strpbrk memset strstr], [], [_AC_LIBOBJ($ac_func)])
+m4trace:configure.in:649: -1- AC_LIBSOURCE([strnlen.c])
+m4trace:configure.in:649: -1- AC_CHECK_FUNCS([getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen], [], [_AC_LIBOBJ($ac_func)])
 m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */
 #undef HAVE_GETCWD])
 m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */
@@ -744,6 +745,8 @@ m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you ha
 #undef HAVE_MEMSET])
 m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */
 #undef HAVE_STRSTR])
+m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */
+#undef HAVE_STRNLEN])
 m4trace:configure.in:649: -1- AC_SUBST([LIB@&t@OBJS])
 m4trace:configure.in:650: -1- AC_LIBSOURCE([strtod.c])
 m4trace:configure.in:650: -1- AC_LIBSOURCE([strtol.c])
index 2be86d11fd9006dc4d92c5bac67689f4ce9a6ac5..39afbebeafddbede4d3a56cc12f6b09affec5a98 100644 (file)
@@ -355,7 +355,7 @@ pwd_builtin (list)
       fflush (stdout);
       if (ferror (stdout))
        {
-         builtin_error (_("write error: %s"), strerror (errno));
+         sh_wrerror ();
          clearerr (stdout);
          return (EXECUTION_FAILURE);
        }
index 3d3dd5947c4505ed6176443211b89ca3882ba064..8c2dde4a2f9a6a1c11c4417f9aff02f41714b97d 100644 (file)
@@ -270,6 +270,12 @@ sh_notbuiltin (s)
   builtin_error (_("%s: not a shell builtin"), s);
 }
 
+void
+sh_wrerror ()
+{
+  builtin_error (_("write error: %s"), strerror (errno));
+}
+
 /* **************************************************************** */
 /*                                                                 */
 /*          Shell positional parameter manipulation                */
index 869d3af2b8bbbd8a26ceff8cc4e7719b002f7a1b..df303252941d96cd9474ebb6293f8e5af1a7f64f 100644 (file)
@@ -77,6 +77,7 @@ extern void sh_readonly __P((const char *));
 extern void sh_nojobs __P((char *));
 extern void sh_restricted __P((char *));
 extern void sh_notbuiltin __P((char *));
+extern void sh_wrerror __P((void));
 
 extern char **make_builtin_argv __P((WORD_LIST *, int *));
 extern void remember_args __P((WORD_LIST *, int));
index 9d141e5c5f28f52a27371e64fb6ce1beee12ee82..a13c6c4a1c82e00df28e1228bab0d0c9e6cd1cd0 100644 (file)
@@ -175,6 +175,7 @@ just_echo:
   fflush (stdout);
   if (ferror (stdout))
     {
+      sh_wrerror ();
       clearerr (stdout);
       return (EXECUTION_FAILURE);
     }
index d9719b82ab97663c5cb1166872a46c415650193a..5342a731259aa9679373138830a52d109834445f 100644 (file)
@@ -105,7 +105,7 @@ extern int errno;
 #define LENMODS "hjlLtz"
 
 static void printf_erange __P((char *));
-static void printstr __P((char *, char *, int, int, int));
+static int printstr __P((char *, char *, int, int, int));
 static int tescape __P((char *, char *, int *));
 static char *bexpand __P((char *, int, int *, int *));
 static char *mklong __P((char *, char *, size_t));
@@ -297,7 +297,7 @@ printf_builtin (list)
            case 'b':           /* expand escapes in argument */
              {
                char *p, *xp;
-               int rlen;
+               int rlen, r;
 
                p = getstr ();
                ch = rlen = 0;
@@ -307,11 +307,17 @@ printf_builtin (list)
                  {
                    /* Have to use printstr because of possible NUL bytes
                       in XP -- printf does not handle that well. */
-                   printstr (start, xp, rlen, fieldwidth, precision);
+                   r = printstr (start, xp, rlen, fieldwidth, precision);
+                   if (r < 0)
+                     {
+                       sh_wrerror ();
+                       clearerr (stdout);
+                       retval = EXECUTION_FAILURE;
+                     }
                    free (xp);
                  }
 
-               if (ch)
+               if (ch || r < 0)
                  PRETURN (retval);
                break;
              }
@@ -319,6 +325,7 @@ printf_builtin (list)
            case 'q':           /* print with shell quoting */
              {
                char *p, *xp;
+               int r;
 
                p = getstr ();
                if (ansic_shouldquote (p))
@@ -328,9 +335,17 @@ printf_builtin (list)
                if (xp)
                  {
                    /* Use printstr to get fieldwidth and precision right. */
-                   printstr (start, xp, strlen (xp), fieldwidth, precision);
+                   r = printstr (start, xp, strlen (xp), fieldwidth, precision);
+                   if (r < 0)
+                     {
+                       sh_wrerror ();
+                       clearerr (stdout);
+                     }
                    free (xp);
                  }
+
+               if (r < 0)
+                 PRETURN (EXECUTION_FAILURE);
                break;
              }
 
@@ -412,6 +427,13 @@ printf_builtin (list)
          modstart[0] = thisch;
          modstart[1] = nextch;
        }
+
+      if (ferror (stdout))
+       {
+         sh_wrerror ();
+         clearerr (stdout);
+         PRETURN (EXECUTION_FAILURE);
+       }
     }
   while (garglist && garglist != list->next);
 
@@ -429,7 +451,7 @@ printf_erange (s)
 }
 
 /* We duplicate a lot of what printf(3) does here. */
-static void
+static int
 printstr (fmt, string, len, fieldwidth, precision)
      char *fmt;                        /* format */
      char *string;             /* expanded string argument */
@@ -531,6 +553,8 @@ printstr (fmt, string, len, fieldwidth, precision)
   /* output any necessary trailing padding */
   for (; padlen < 0; padlen++)
     putchar (' ');
+
+  return (ferror (stdout) ? -1 : 0);
 }
   
 /* Convert STRING by expanding the escape sequences specified by the
index 753b18a8b5b8db20442b04aa0026e901b29cf94b..8e3e4569f588e63cd84998bfa769fb3c109f7ef9 100644 (file)
 /* Define if you have the strftime function. */
 #undef HAVE_STRFTIME
 
+/* Define if you have the strnlen function. */
+#undef HAVE_STRNLEN
+
 /* Define if you have the strpbrk function. */
 #undef HAVE_STRPBRK
 
diff --git a/config.h.in~ b/config.h.in~
new file mode 100644 (file)
index 0000000..753b18a
--- /dev/null
@@ -0,0 +1,976 @@
+/* config.h -- Configuration file for bash. */
+
+/* Copyright (C) 1987-2004 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash, the Bourne Again SHell.
+
+   Bash is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   Bash is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#ifndef _CONFIG_H_
+#define _CONFIG_H_
+
+/* Configuration feature settings controllable by autoconf. */
+
+/* Define JOB_CONTROL if your operating system supports
+   BSD-like job control. */
+#undef JOB_CONTROL
+
+/* Define ALIAS if you want the alias features. */
+#undef ALIAS
+
+/* Define PUSHD_AND_POPD if you want those commands to be compiled in.
+   (Also the `dirs' commands.) */
+#undef PUSHD_AND_POPD
+
+/* Define BRACE_EXPANSION if you want curly brace expansion a la Csh:
+   foo{a,b} -> fooa foob.  Even if this is compiled in (the default) you
+   can turn it off at shell startup with `-nobraceexpansion', or during
+   shell execution with `set +o braceexpand'. */
+#undef BRACE_EXPANSION
+
+/* Define READLINE to get the nifty/glitzy editing features.
+   This is on by default.  You can turn it off interactively
+   with the -nolineediting flag. */
+#undef READLINE
+
+/* Define BANG_HISTORY if you want to have Csh style "!" history expansion.
+   This is unrelated to READLINE. */
+#undef BANG_HISTORY
+
+/* Define HISTORY if you want to have access to previously typed commands.
+
+   If both HISTORY and READLINE are defined, you can get at the commands
+   with line editing commands, and you can directly manipulate the history
+   from the command line.
+
+   If only HISTORY is defined, the `fc' and `history' builtins are
+   available. */
+#undef HISTORY
+
+/* Define this if you want completion that puts all alternatives into
+   a brace expansion shell expression. */
+#if defined (BRACE_EXPANSION) && defined (READLINE)
+#  define BRACE_COMPLETION
+#endif /* BRACE_EXPANSION */
+
+/* Define DEFAULT_ECHO_TO_XPG if you want the echo builtin to interpret
+   the backslash-escape characters by default, like the XPG Single Unix
+   Specification V2 for echo.
+   This requires that V9_ECHO be defined. */
+#undef DEFAULT_ECHO_TO_XPG
+
+/* Define HELP_BUILTIN if you want the `help' shell builtin and the long
+   documentation strings compiled into the shell. */
+#undef HELP_BUILTIN
+
+/* Define RESTRICTED_SHELL if you want the generated shell to have the
+   ability to be a restricted one.  The shell thus generated can become
+   restricted by being run with the name "rbash", or by setting the -r
+   flag. */
+#undef RESTRICTED_SHELL
+
+/* Define DISABLED_BUILTINS if you want "builtin foo" to always run the
+   shell builtin "foo", even if it has been disabled with "enable -n foo". */
+#undef DISABLED_BUILTINS
+
+/* Define PROCESS_SUBSTITUTION if you want the K*rn shell-like process
+   substitution features "<(file)". */
+/* Right now, you cannot do this on machines without fully operational
+   FIFO support.  This currently include NeXT and Alliant. */
+#undef PROCESS_SUBSTITUTION
+
+/* Define PROMPT_STRING_DECODE if you want the backslash-escaped special
+   characters in PS1 and PS2 expanded.  Variable expansion will still be
+   performed. */
+#undef PROMPT_STRING_DECODE
+
+/* Define SELECT_COMMAND if you want the Korn-shell style `select' command:
+       select word in word_list; do command_list; done */
+#undef SELECT_COMMAND
+
+/* Define COMMAND_TIMING of you want the ksh-style `time' reserved word and
+   the ability to time pipelines, functions, and builtins. */
+#undef COMMAND_TIMING
+
+/* Define ARRAY_VARS if you want ksh-style one-dimensional array variables. */
+#undef ARRAY_VARS
+
+/* Define DPAREN_ARITHMETIC if you want the ksh-style ((...)) arithmetic
+   evaluation command. */
+#undef DPAREN_ARITHMETIC
+
+/* Define EXTENDED_GLOB if you want the ksh-style [*+@?!](patlist) extended
+   pattern matching. */
+#undef EXTENDED_GLOB
+
+/* Define COND_COMMAND if you want the ksh-style [[...]] conditional
+   command. */
+#undef COND_COMMAND
+
+/* Define COND_REGEXP if you want extended regular expression matching and the
+   =~ binary operator in the [[...]] conditional command. */
+#define COND_REGEXP
+
+/* Define ARITH_FOR_COMMAND if you want the ksh93-style
+       for (( init; test; step )) do list; done
+   arithmetic for command. */
+#undef ARITH_FOR_COMMAND
+
+/* Define NETWORK_REDIRECTIONS if you want /dev/(tcp|udp)/host/port to open
+   socket connections when used in redirections */
+#undef NETWORK_REDIRECTIONS
+
+/* Define PROGRAMMABLE_COMPLETION for the programmable completion features
+   and the complete builtin. */
+#undef PROGRAMMABLE_COMPLETION
+
+/* Define NO_MULTIBYTE_SUPPORT to not compile in support for multibyte
+   characters, even if the OS supports them. */
+#undef NO_MULTIBYTE_SUPPORT
+
+/* Define DEBUGGER if you want to compile in some features used only by the 
+   bash debugger. */
+#undef DEBUGGER
+
+/* Define MEMSCRAMBLE if you want the bash malloc and free to scramble
+   memory contents on malloc() and free(). */
+#undef MEMSCRAMBLE
+
+/* Define AFS if you are using Transarc's AFS. */
+#undef AFS
+
+#undef ENABLE_NLS
+
+/* End of configuration settings controllable by autoconf. */
+/* Other settable options appear in config-top.h. */
+
+#include "config-top.h"
+
+/* Beginning of autoconf additions. */
+
+/* Characteristics of the C compiler */
+#undef const
+
+#undef inline
+
+/* Define if cpp supports the ANSI-C stringizing `#' operator */
+#undef HAVE_STRINGIZE
+
+/* Define if the compiler supports `long double' variables. */
+#undef HAVE_LONG_DOUBLE
+
+#undef PROTOTYPES
+
+#undef __CHAR_UNSIGNED__
+
+/* Define if the compiler supports `long long' variables. */
+#undef HAVE_LONG_LONG
+
+#undef HAVE_UNSIGNED_LONG_LONG
+
+/* The number of bytes in a int.  */
+#undef SIZEOF_INT
+
+/* The number of bytes in a long.  */
+#undef SIZEOF_LONG
+
+/* The number of bytes in a pointer to char.  */
+#undef SIZEOF_CHAR_P
+
+/* The number of bytes in a double (hopefully 8). */
+#undef SIZEOF_DOUBLE
+
+/* The number of bytes in a `long long', if we have one. */
+#undef SIZEOF_LONG_LONG
+
+/* System paths */
+
+#define DEFAULT_MAIL_DIRECTORY "/usr/spool/mail"
+
+/* Characteristics of the system's header files and libraries that affect
+   the compilation environment. */
+
+/* Define if the system does not provide POSIX.1 features except
+   with this defined.  */
+#undef _POSIX_1_SOURCE
+
+/* Define if you need to in order for stat and other things to work.  */
+#undef _POSIX_SOURCE
+
+/* Define to use GNU libc extensions */
+#undef _GNU_SOURCE
+
+/* Define if you have the ANSI C header files.  */
+#undef STDC_HEADERS
+
+/* Memory management functions. */
+
+/* Define if using the bash version of malloc in lib/malloc/malloc.c */
+#undef USING_BASH_MALLOC
+
+#undef DISABLE_MALLOC_WRAPPERS
+
+/* Define if using alloca.c.  */
+#undef C_ALLOCA
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+   This function is required for alloca.c support on those systems.  */
+#undef CRAY_STACKSEG_END
+
+/* Define if you have alloca, as a function or macro.  */
+#undef HAVE_ALLOCA
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
+#undef HAVE_ALLOCA_H
+
+
+/* SYSTEM TYPES */
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+#undef off_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef mode_t
+
+/* Define to `int' if <signal.h> doesn't define. */
+#undef sigset_t
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+#undef pid_t
+
+/* Define to `short' if <sys/types.h> doesn't define.  */
+#undef bits16_t
+
+/* Define to `unsigned short' if <sys/types.h> doesn't define.  */
+#undef u_bits16_t
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+#undef bits32_t
+
+/* Define to `unsigned int' if <sys/types.h> doesn't define.  */
+#undef u_bits32_t
+
+/* Define to `double' if <sys/types.h> doesn't define. */
+#undef bits64_t
+
+/* Define to `unsigned int' if <sys/types.h> doesn't define. */
+#undef u_int
+
+/* Define to `unsigned long' if <sys/types.h> doesn't define.  */
+#undef u_long
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef ptrdiff_t
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+#undef size_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef ssize_t
+
+/* Define to `long' if <stdint.h> doesn't define. */
+#undef intmax_t
+
+/* Define to `unsigned long' if <stdint.h> doesn't define. */
+#undef uintmax_t
+/* Define to `int' if <sys/types.h> doesn't define.  */
+#undef uid_t
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+#undef clock_t
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+#undef time_t
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+#undef gid_t
+
+/* Define to `unsigned int' if <sys/socket.h> doesn't define. */
+#undef socklen_t
+
+/* Define if you have quad_t in <sys/types.h>. */
+#undef HAVE_QUAD_T
+
+#undef RLIMTYPE
+
+/* Define to the type of elements in the array set by `getgroups'.
+   Usually this is either `int' or `gid_t'.  */
+#undef GETGROUPS_T
+
+/* Characteristics of the machine archictecture. */
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+       STACK_DIRECTION > 0 => grows toward higher addresses
+       STACK_DIRECTION < 0 => grows toward lower addresses
+       STACK_DIRECTION = 0 => direction of growth unknown
+ */
+#undef STACK_DIRECTION
+
+/* Define if the machine architecture is big-endian. */
+#undef WORDS_BIGENDIAN
+
+/* Check for the presence of certain non-function symbols in the system
+   libraries. */
+
+/* Define if `sys_siglist' is declared by <signal.h> or <unistd.h>.  */
+#undef HAVE_DECL_SYS_SIGLIST
+#undef SYS_SIGLIST_DECLARED
+
+/* Define if `_sys_siglist' is declared by <signal.h> or <unistd.h>.  */
+#undef UNDER_SYS_SIGLIST_DECLARED
+
+#undef HAVE_SYS_SIGLIST
+
+#undef HAVE_UNDER_SYS_SIGLIST
+
+#undef HAVE_SYS_ERRLIST
+
+#undef HAVE_TZNAME
+
+
+/* Characteristics of some of the system structures. */
+
+#undef HAVE_STRUCT_DIRENT_D_INO
+
+#undef HAVE_STRUCT_DIRENT_D_FILENO
+
+#undef HAVE_STRUCT_DIRENT_D_NAMLEN
+
+#undef TIOCSTAT_IN_SYS_IOCTL
+
+#undef FIONREAD_IN_SYS_IOCTL
+
+#undef GWINSZ_IN_SYS_IOCTL
+
+#undef STRUCT_WINSIZE_IN_SYS_IOCTL
+
+#undef TM_IN_SYS_TIME
+
+#undef STRUCT_WINSIZE_IN_TERMIOS
+
+#undef SPEED_T_IN_SYS_TYPES
+
+#undef TERMIOS_LDISC
+
+#undef TERMIO_LDISC
+
+#undef HAVE_STRUCT_STAT_ST_BLOCKS
+
+#undef HAVE_STRUCT_TM_TM_ZONE
+#undef HAVE_TM_ZONE
+
+#undef HAVE_TIMEVAL
+
+#undef HAVE_STRUCT_TIMEZONE
+
+/* Characteristics of definitions in the system header files. */
+
+#undef HAVE_GETPW_DECLS
+
+#undef HAVE_RESOURCE
+
+#undef HAVE_LIBC_FNM_EXTMATCH
+
+
+#undef HAVE_DECL_CONFSTR
+
+#undef HAVE_DECL_PRINTF
+
+#undef HAVE_DECL_SBRK
+
+#undef HAVE_DECL_STRCPY
+
+#undef HAVE_DECL_STRSIGNAL
+
+#undef HAVE_DECL_STRTOLD
+
+#undef STRTOLD_BROKEN
+
+#undef HAVE_MBSTATE_T
+
+/* These are checked with BASH_CHECK_DECL */
+
+#undef HAVE_DECL_STRTOIMAX
+#undef HAVE_DECL_STRTOL
+#undef HAVE_DECL_STRTOLL
+#undef HAVE_DECL_STRTOUL
+#undef HAVE_DECL_STRTOULL
+#undef HAVE_DECL_STRTOUMAX
+
+/* Characteristics of system calls and C library functions. */
+
+/* Define if the `getpgrp' function takes no argument.  */
+#undef GETPGRP_VOID
+
+#undef NAMED_PIPES_MISSING
+
+#undef OPENDIR_NOT_ROBUST
+
+#undef PGRP_PIPE
+
+/* Define if the setvbuf function takes the buffering type as its second
+   argument and the buffer pointer as the third, as on System V
+   before release 3.  */
+#undef SETVBUF_REVERSED
+
+#undef STAT_MACROS_BROKEN
+
+#undef ULIMIT_MAXFDS
+
+#undef CAN_REDEFINE_GETENV
+
+#undef HAVE_STD_PUTENV
+
+#undef HAVE_STD_UNSETENV
+
+#undef HAVE_PRINTF_A_FORMAT
+
+#undef CTYPE_NON_ASCII
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Characteristics of properties exported by the kernel. */
+
+/* Define if the kernel can exec files beginning with #! */
+#undef HAVE_HASH_BANG_EXEC
+
+/* Define if you have the /dev/fd devices to map open files into the file system. */
+#undef HAVE_DEV_FD
+
+/* Defined to /dev/fd or /proc/self/fd (linux). */
+#undef DEV_FD_PREFIX
+
+/* Define if you have the /dev/stdin device. */
+#undef HAVE_DEV_STDIN
+
+
+/* Type and behavior of signal handling functions. */
+
+/* Define as the return type of signal handlers (int or void).  */
+#undef RETSIGTYPE
+
+/* Define if return type of signal handlers is void */
+#undef VOID_SIGHANDLER
+
+#undef MUST_REINSTALL_SIGHANDLERS
+
+#undef HAVE_BSD_SIGNALS
+
+#undef HAVE_POSIX_SIGNALS
+
+#undef HAVE_USG_SIGHOLD
+
+#undef UNUSABLE_RT_SIGNALS
+
+
+/* Presence of system and C library functions. */
+
+/* Define if you have the asprintf function.  */
+#undef HAVE_ASPRINTF
+
+/* Define if you have the bcopy function.  */
+#undef HAVE_BCOPY
+
+/* Define if you have the bzero function.  */
+#undef HAVE_BZERO
+
+/* Define if you have the confstr function.  */
+#undef HAVE_CONFSTR
+
+/* Define if you have the dlclose function.  */
+#undef HAVE_DLCLOSE
+
+/* Define if you have the dlopen function.  */
+#undef HAVE_DLOPEN
+
+/* Define if you have the dlsym function.  */
+#undef HAVE_DLSYM
+
+/* Define if you don't have vprintf but do have _doprnt.  */
+#undef HAVE_DOPRNT
+
+/* Define if you have the dup2 function.  */
+#undef HAVE_DUP2
+
+/* Define if you have the getaddrinfo function. */
+#undef HAVE_GETADDRINFO
+
+/* Define if you have the getcwd function.  */
+#undef HAVE_GETCWD
+
+/* Define if you have the getdtablesize function.  */
+#undef HAVE_GETDTABLESIZE
+
+/* Define if you have the getgroups function.  */
+#undef HAVE_GETGROUPS
+
+/* Define if you have the gethostbyname function.  */
+#undef HAVE_GETHOSTBYNAME
+
+/* Define if you have the gethostname function.  */
+#undef HAVE_GETHOSTNAME
+
+/* Define if you have the getpagesize function.  */
+#undef HAVE_GETPAGESIZE
+
+/* Define if you have the getpeername function.  */
+#undef HAVE_GETPEERNAME
+
+/* Define if you have the getrlimit function.  */
+#undef HAVE_GETRLIMIT
+
+/* Define if you have the getrusage function.  */
+#undef HAVE_GETRUSAGE
+
+/* Define if you have the getservbyname function.  */
+#undef HAVE_GETSERVBYNAME
+
+/* Define if you have the getservent function.  */
+#undef HAVE_GETSERVENT
+
+/* Define if you have the gettimeofday function.  */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define if you have the getwd function.  */
+#undef HAVE_GETWD
+
+/* Define if you have the inet_aton function.  */
+#undef HAVE_INET_ATON
+
+/* Define if you have the isascii function. */
+#undef HAVE_ISASCII
+
+/* Define if you have the isblank function.  */
+#undef HAVE_ISBLANK
+
+/* Define if you have the isgraph function.  */
+#undef HAVE_ISGRAPH
+
+/* Define if you have the isint function in libc */
+#undef HAVE_ISINF_IN_LIBC
+
+/* Define if you have the isprint function.  */
+#undef HAVE_ISPRINT
+
+/* Define if you have the isspace function.  */
+#undef HAVE_ISSPACE
+
+/* Define if you have the isxdigit function.  */
+#undef HAVE_ISXDIGIT
+
+/* Define if you have the killpg function.  */
+#undef HAVE_KILLPG
+
+/* Define if you have the lstat function. */
+#undef HAVE_LSTAT
+
+/* Define if you have the mbrlen function. */
+#undef HAVE_MBRLEN
+
+/* Define if you have the mbrtowc function. */
+#undef HAVE_MBRTOWC
+
+/* Define if you have the mbsrtowcs function. */
+#undef HAVE_MBSRTOWCS
+
+/* Define if you have the memmove function.  */
+#undef HAVE_MEMMOVE
+
+/* Define if you have the memset function.  */
+#undef HAVE_MEMSET
+
+/* Define if you have the mkfifo function.  */
+#undef HAVE_MKFIFO
+
+/* Define if you have the pathconf function. */
+#undef HAVE_PATHCONF
+
+/* Define if you have the putenv function.  */
+#undef HAVE_PUTENV
+
+/* Define if you have the readlink function. */
+#undef HAVE_READLINK
+
+/* Define if you have the regcomp function. */
+#undef HAVE_REGCOMP
+
+/* Define if you have the regexec function. */
+#undef HAVE_REGEXEC
+
+/* Define if you have the rename function. */
+#undef HAVE_RENAME
+
+/* Define if you have the sbrk function. */
+#undef HAVE_SBRK
+
+/* Define if you have the select function.  */
+#undef HAVE_SELECT
+
+/* Define if you have the setdtablesize function.  */
+#undef HAVE_SETDTABLESIZE
+
+/* Define if you have the setenv function.  */
+#undef HAVE_SETENV
+
+/* Define if you have the setlinebuf function.  */
+#undef HAVE_SETLINEBUF
+
+/* Define if you have the setlocale function.  */
+#undef HAVE_SETLOCALE
+
+/* Define if you have the setostype function.  */
+#undef HAVE_SETOSTYPE
+
+/* Define if you have the setvbuf function.  */
+#undef HAVE_SETVBUF
+
+/* Define if you have the siginterrupt function.  */
+#undef HAVE_SIGINTERRUPT
+
+/* Define if you have the POSIX.1-style sigsetjmp function.  */
+#undef HAVE_POSIX_SIGSETJMP
+
+/* Define if you have the snprintf function.  */
+#undef HAVE_SNPRINTF
+
+/* Define if you have the strcasecmp function.  */
+#undef HAVE_STRCASECMP
+
+/* Define if you have the strchr function.  */
+#undef HAVE_STRCHR
+
+/* Define if you have the strcoll function.  */
+#undef HAVE_STRCOLL
+
+/* Define if you have the strerror function.  */
+#undef HAVE_STRERROR
+
+/* Define if you have the strftime function. */
+#undef HAVE_STRFTIME
+
+/* Define if you have the strpbrk function. */
+#undef HAVE_STRPBRK
+
+/* Define if you have the strstr function. */
+#undef HAVE_STRSTR
+
+/* Define if you have the strtod function. */
+#undef HAVE_STRTOD
+
+/* Define if you have the strtoimax function. */
+#undef HAVE_STRTOIMAX
+
+/* Define if you have the strtol function. */
+#undef HAVE_STRTOL
+
+/* Define if you have the strtoll function. */
+#undef HAVE_STRTOLL
+
+/* Define if you have the strtoul function. */
+#undef HAVE_STRTOUL
+
+/* Define if you have the strtoull function. */
+#undef HAVE_STRTOULL
+
+/* Define if you have the strtoumax function. */
+#undef HAVE_STRTOUMAX
+
+/* Define if you have the strsignal function or macro. */
+#undef HAVE_STRSIGNAL
+
+/* Define if you have the sysconf function. */
+#undef HAVE_SYSCONF
+
+/* Define if you have the tcgetattr function.  */
+#undef HAVE_TCGETATTR
+
+/* Define if you have the tcgetpgrp function.  */
+#undef HAVE_TCGETPGRP
+
+/* Define if you have the times function.  */
+#undef HAVE_TIMES
+
+/* Define if you have the ttyname function.  */
+#undef HAVE_TTYNAME
+
+/* Define if you have the tzset function. */
+#undef HAVE_TZSET
+
+/* Define if you have the ulimit function. */
+#undef HAVE_ULIMIT
+
+/* Define if you have the uname function. */
+#undef HAVE_UNAME
+
+/* Define if you have the unsetenv function.  */
+#undef HAVE_UNSETENV
+
+/* Define if you have the vasprintf function.  */
+#undef HAVE_VASPRINTF
+
+/* Define if you have the vprintf function.  */
+#undef HAVE_VPRINTF
+
+/* Define if you have the vsnprintf function.  */
+#undef HAVE_VSNPRINTF
+
+/* Define if you have the waitpid function. */
+#undef HAVE_WAITPID
+
+/* Define if you have the wait3 function.  */
+#undef HAVE_WAIT3
+
+/* Define if you have the wcsdup function.  */
+#undef HAVE_WCSDUP
+
+/* Define if you have the wctomb function.  */
+#undef HAVE_WCTOMB
+
+/* Define if you have the wcwidth function.  */
+#undef HAVE_WCWIDTH
+
+/* Presence of certain system include files. */
+
+/* Define if you have the <arpa/inet.h> header file. */
+#undef HAVE_ARPA_INET_H
+
+/* Define if you have the <dirent.h> header file.  */
+#undef HAVE_DIRENT_H
+
+/* Define if you have the <dlfcn.h> header file.  */
+#undef HAVE_DLFCN_H
+
+/* Define if you have the <grp.h> header file.  */
+#undef HAVE_GRP_H
+
+/* Define if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if you have the <langinfo.h> header file.  */
+#undef HAVE_LANGINFO_H
+
+/* Define if you have the <libintl.h> header file. */
+#undef HAVE_LIBINTL_H
+
+/* Define if you have the <limits.h> header file.  */
+#undef HAVE_LIMITS_H
+
+/* Define if you have the <locale.h> header file.  */
+#undef HAVE_LOCALE_H
+
+/* Define if you have the <ndir.h> header file.  */
+#undef HAVE_NDIR_H
+
+/* Define if you have the <netdh.h> header file. */
+#undef HAVE_NETDB_H
+
+/* Define if you have the <netinet/in.h> header file. */
+#undef HAVE_NETINET_IN_H
+
+/* Define if you have the <regex.h> header file. */
+#undef HAVE_REGEX_H
+
+/* Define if you have the <stdlib.h> header file.  */
+#undef HAVE_STDLIB_H
+
+/* Define if you have the <stdarg.h> header file.  */
+#undef HAVE_STDARG_H
+
+/* Define if you have the <string.h> header file.  */
+#undef HAVE_STRING_H
+
+/* Define if you have the <strings.h> header file.  */
+#undef HAVE_STRINGS_H
+
+/* Define if you have the <memory.h> header file.  */
+#undef HAVE_MEMORY_H
+
+/* Define if you have the <stddef.h> header file. */
+#undef HAVE_STDDEF_H
+
+/* Define if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define if you have the <sys/dir.h> header file.  */
+#undef HAVE_SYS_DIR_H
+
+/* Define if you have the <sys/file.h> header file.  */
+#undef HAVE_SYS_FILE_H
+
+/* Define if you have the <sys/ndir.h> header file.  */
+#undef HAVE_SYS_NDIR_H
+
+/* Define if you have the <sys/param.h> header file.  */
+#undef HAVE_SYS_PARAM_H
+
+/* Define if you have the <sys/pte.h> header file.  */
+#undef HAVE_SYS_PTE_H
+
+/* Define if you have the <sys/ptem.h> header file.  */
+#undef HAVE_SYS_PTEM_H
+
+/* Define if you have the <sys/resource.h> header file.  */
+#undef HAVE_SYS_RESOURCE_H
+
+/* Define if you have the <sys/select.h> header file.  */
+#undef HAVE_SYS_SELECT_H
+
+/* Define if you have the <sys/socket.h> header file.  */
+#undef HAVE_SYS_SOCKET_H
+
+/* Define if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define if you have the <sys/stream.h> header file.  */
+#undef HAVE_SYS_STREAM_H
+
+/* Define if you have <sys/time.h> */
+#undef HAVE_SYS_TIME_H
+
+#undef TIME_WITH_SYS_TIME
+
+/* Define if you have <sys/times.h> */
+#undef HAVE_SYS_TIMES_H
+
+/* Define if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
+#undef HAVE_SYS_WAIT_H
+
+/* Define if you have the <termcap.h> header file.  */
+#undef HAVE_TERMCAP_H
+
+/* Define if you have the <termio.h> header file.  */
+#undef HAVE_TERMIO_H
+
+/* Define if you have the <termios.h> header file.  */
+#undef HAVE_TERMIOS_H
+
+/* Define if you have the <unistd.h> header file.  */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the <varargs.h> header file.  */
+#undef HAVE_VARARGS_H
+
+/* Define if you have the <wchar.h> header file.  */
+#undef HAVE_WCHAR_H
+
+/* Define if you have the <varargs.h> header file.  */
+#undef HAVE_WCTYPE_H
+
+/* Presence of certain system libraries. */
+
+#undef HAVE_LIBDL
+
+#undef HAVE_LIBSUN
+
+#undef HAVE_LIBSOCKET
+
+
+/* Define if on MINIX.  */
+#undef _MINIX
+
+/* Are we running SVR5 (UnixWare 7)? */
+#undef SVR5
+
+/* Are we running SVR4.2? */
+#undef SVR4_2
+
+/* Are we running some version of SVR4? */
+#undef SVR4
+
+/* Define if job control is unusable or unsupported. */
+#undef JOB_CONTROL_MISSING
+
+/* Do we need to define _KERNEL to get the RLIMIT_* defines from
+   <sys/resource.h>? */
+#undef RLIMIT_NEEDS_KERNEL
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define for large files on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Do strcoll(3) and strcmp(3) give different results in the default locale? */
+#undef STRCOLL_BROKEN
+
+#undef DUP2_BROKEN
+
+#undef GETCWD_BROKEN
+
+/* Additional defines for configuring lib/intl, maintained by autoscan/autoheader */
+
+/* Define if you have the <argz.h> header file. */
+#undef HAVE_ARGZ_H
+
+/* Define if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
+/* Define if you have the <stdio_ext.h> header file. */
+#undef HAVE_STDIO_EXT_H
+
+/* Define if you have the `dcgettext' function. */
+#undef HAVE_DCGETTEXT
+
+/* Define if your system has a working `malloc' function. */
+/* #undef HAVE_MALLOC */
+
+/* Define if you have the `mempcpy' function. */
+#undef HAVE_MEMPCPY
+
+/* Define if you have a working `mmap' system call. */
+#undef HAVE_MMAP
+
+/* Define if you have the `munmap' function. */
+#undef HAVE_MUNMAP
+
+/* Define if you have the `nl_langinfo' function. */
+#undef HAVE_NL_LANGINFO
+
+/* Define if you have the `stpcpy' function. */
+#undef HAVE_STPCPY
+
+/* Define if you have the `strcspn' function. */
+#undef HAVE_STRCSPN
+
+/* Define if you have the `strdup' function. */
+#undef HAVE_STRDUP
+
+/* Define if you have the `__argz_count' function. */
+#undef HAVE___ARGZ_COUNT
+
+/* Define if you have the `__argz_next' function. */
+#undef HAVE___ARGZ_NEXT
+
+/* Define if you have the `__argz_stringify' function. */
+#undef HAVE___ARGZ_STRINGIFY
+
+/* End additions for lib/intl */
+
+#include "config-bot.h"
+
+#endif /* _CONFIG_H_ */
index 803b4118a52fcf08ac52790ec6df76a89be012a6..5910defe62650d87b4636e5a960f12a9200d07c7 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.in for Bash 3.0, version 3.168, from autoconf version AC_ACVERSION.
+# From configure.in for Bash 3.0, version 3.169, from autoconf version AC_ACVERSION.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57 for bash 3.0-release.
+# Generated by GNU Autoconf 2.57 for bash 3.1-devel.
 #
 # Report bugs to <bug-bash@gnu.org>.
 #
@@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='bash'
 PACKAGE_TARNAME='bash'
-PACKAGE_VERSION='3.0-release'
-PACKAGE_STRING='bash 3.0-release'
+PACKAGE_VERSION='3.1-devel'
+PACKAGE_STRING='bash 3.1-devel'
 PACKAGE_BUGREPORT='bug-bash@gnu.org'
 
 ac_unique_file="shell.h"
@@ -784,7 +784,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 3.0-release to adapt to many kinds of systems.
+\`configure' configures bash 3.1-devel to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -845,7 +845,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bash 3.0-release:";;
+     short | recursive ) echo "Configuration of bash 3.1-devel:";;
    esac
   cat <<\_ACEOF
 
@@ -1000,7 +1000,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-bash configure 3.0-release
+bash configure 3.1-devel
 generated by GNU Autoconf 2.57
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
@@ -1015,7 +1015,7 @@ cat >&5 <<_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 3.0-release, which was
+It was created by bash $as_me 3.1-devel, which was
 generated by GNU Autoconf 2.57.  Invocation command line was
 
   $ $0 $@
@@ -1383,8 +1383,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
           ac_config_headers="$ac_config_headers config.h"
 
 
-BASHVERS=3.0
-RELSTATUS=release
+BASHVERS=3.1
+RELSTATUS=devel
 
 case "$RELSTATUS" in
 alp*|bet*|dev*|rc*)    DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -11534,7 +11534,8 @@ done
 
 
 
-for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr
+
+for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -24445,7 +24446,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by bash $as_me 3.0-release, which was
+This file was extended by bash $as_me 3.1-devel, which was
 generated by GNU Autoconf 2.57.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -24508,7 +24509,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-bash config.status 3.0-release
+bash config.status 3.1-devel
 configured by $0, generated by GNU Autoconf 2.57,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
index 55c8a5c75551f161f96aae26695c7ea9ce04fa09..d1fc8048a24196ef7ac75a7facf82c35c0205515 100644 (file)
@@ -22,10 +22,10 @@ dnl Process this file with autoconf to produce a configure script.
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.
 
-AC_REVISION([for Bash 3.0, version 3.168, from autoconf version] AC_ACVERSION)dnl
+AC_REVISION([for Bash 3.0, version 3.169, from autoconf version] AC_ACVERSION)dnl
 
-define(bashvers, 3.0)
-define(relstatus, release)
+define(bashvers, 3.1)
+define(relstatus, devel)
 
 AC_INIT(bash, bashvers-relstatus, bug-bash@gnu.org)
 
@@ -646,7 +646,7 @@ AC_CHECK_FUNCS(bcopy bzero confstr sysconf pathconf setenv putenv unsetenv \
                getaddrinfo gethostbyname getservbyname getservent inet_aton \
                vsnprintf snprintf vasprintf asprintf fnmatch regcomp regexec)
 AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
-AC_REPLACE_FUNCS(getcwd strcasecmp strerror strftime strpbrk memset strstr)
+AC_REPLACE_FUNCS(getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen)
 AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
 
 AC_CHECK_DECLS([confstr])
index e9ea6378ae98d8d0817d11a22a670fc7c04fd8fa..55c8a5c75551f161f96aae26695c7ea9ce04fa09 100644 (file)
@@ -22,7 +22,7 @@ dnl Process this file with autoconf to produce a configure script.
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.
 
-AC_REVISION([for Bash 3.0, version 3.166, from autoconf version] AC_ACVERSION)dnl
+AC_REVISION([for Bash 3.0, version 3.168, from autoconf version] AC_ACVERSION)dnl
 
 define(bashvers, 3.0)
 define(relstatus, release)
@@ -574,11 +574,19 @@ BASH_HEADER_INTTYPES
 AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
                 memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
                 stddef.h stdint.h netdb.h grp.h strings.h regex.h)
-AC_CHECK_HEADERS(sys/ptem.h sys/pte.h sys/stream.h sys/select.h sys/file.h \
+AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
                 sys/resource.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)
 
+dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
+dnl exists
+AC_CHECK_HEADER(sys/ptem.h, , ,[[
+#if HAVE_SYS_STREAM_H
+#  include <sys/stream.h>
+#endif
+]])
+
 dnl special checks for libc functions
 AC_FUNC_ALLOCA
 AC_FUNC_GETPGRP
diff --git a/doc/FAQ b/doc/FAQ
index f2f4e37bfb95131971c5d38b042a24a9fd064deb..ede1272bfd12e3c447bfbddee1bae67b4938456b 100644 (file)
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,4 +1,4 @@
-This is the Bash FAQ, version 3.28, for Bash version 3.0.
+This is the Bash FAQ, version 3.29, for Bash version 3.0.
 
 This document contains a set of frequently-asked questions concerning
 Bash, the GNU Bourne-Again Shell.  Bash is a freely-available command
@@ -181,16 +181,15 @@ earlier Minix versions yet.
 
 Bash has been ported to versions of Windows implementing the Win32
 programming interface.  This includes Windows 95 and Windows NT.
-The port was done by Cygnus Solutions as part of their CYGWIN
-project.  For more information about the project, look at the URLs
-
-http://www.cygwin.com/
-http://sourceware.cygnus.com/cygwin
+The port was done by Cygnus Solutions (now part of Red Hat) as part
+of their CYGWIN project.  For more information about the project, see
+http://www.cygwin.com/.
 
 Cygnus originally ported bash-1.14.7, and that port was part of their
 early GNU-Win32 (the original name) releases.  Cygnus has also done a
-port of bash-2.05 to the CYGWIN environment, and it is available as
-part of their current release.
+port of bash-2.05b to the CYGWIN environment, and it is available as
+part of their current release.  Bash-3.0 is currently being tested and
+should be available soon.
 
 Bash-2.05b and later versions should require no local Cygnus changes to
 build and run under CYGWIN.
diff --git a/doc/FAQ~ b/doc/FAQ~
new file mode 100644 (file)
index 0000000..f2f4e37
--- /dev/null
+++ b/doc/FAQ~
@@ -0,0 +1,1785 @@
+This is the Bash FAQ, version 3.28, for Bash version 3.0.
+
+This document contains a set of frequently-asked questions concerning
+Bash, the GNU Bourne-Again Shell.  Bash is a freely-available command
+interpreter with advanced features for both interactive use and shell
+programming.
+
+Another good source of basic information about shells is the collection
+of FAQ articles periodically posted to comp.unix.shell.
+
+Questions and comments concerning this document should be sent to
+chet@po.cwru.edu.
+
+This document is available for anonymous FTP with the URL
+
+ftp://ftp.cwru.edu/pub/bash/FAQ
+
+The Bash home page is http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
+
+----------
+Contents:
+
+Section A:  The Basics
+
+A1) What is it?
+A2) What's the latest version?
+A3) Where can I get it?
+A4) On what machines will bash run?
+A5) Will bash run on operating systems other than Unix?
+A6) How can I build bash with gcc?
+A7) How can I make bash my login shell?
+A8) I just changed my login shell to bash, and now I can't FTP into my
+    machine.  Why not?
+A9) What's the `POSIX Shell and Utilities standard'?
+A10) What is the bash `posix mode'?
+
+Section B:  The latest version
+
+B1) What's new in version 3.0?
+B2) Are there any user-visible incompatibilities between bash-3.0 and
+    bash-1.14.7?
+
+Section C:  Differences from other Unix shells
+
+C1) How does bash differ from sh, the Bourne shell?
+C2) How does bash differ from the Korn shell, version ksh88?
+C3) Which new features in ksh-93 are not in bash, and which are?
+
+Section D:  Why does bash do some things differently than other Unix shells?
+
+D1) Why does bash run a different version of `command' than
+    `which command' says it will?
+D2) Why doesn't bash treat brace expansions exactly like csh?
+D3) Why doesn't bash have csh variable modifiers?
+D4) How can I make my csh aliases work when I convert to bash?
+D5) How can I pipe standard output and standard error from one command to
+    another, like csh does with `|&'?
+D6) Now that I've converted from ksh to bash, are there equivalents to
+    ksh features like autoloaded functions and the `whence' command?
+
+Section E:  Why does bash do certain things the way it does?
+
+E1) Why is the bash builtin `test' slightly different from /bin/test?
+E2) Why does bash sometimes say `Broken pipe'?
+E3) When I have terminal escape sequences in my prompt, why does bash
+    wrap lines at the wrong column?
+E4) If I pipe the output of a command into `read variable', why doesn't
+    the output show up in $variable when the read command finishes?
+E5) I have a bunch of shell scripts that use backslash-escaped characters
+    in arguments to `echo'.  Bash doesn't interpret these characters.  Why
+    not, and how can I make it understand them?
+E6) Why doesn't a while or for loop get suspended when I type ^Z?
+E7) What about empty for loops in Makefiles?
+E8) Why does the arithmetic evaluation code complain about `08'?
+E9) Why does the pattern matching expression [A-Z]* match files beginning
+    with every letter except `z'?
+E10) Why does `cd //' leave $PWD as `//'?
+E11) If I resize my xterm while another program is running, why doesn't bash
+     notice the change?
+E12) Why don't negative offsets in substring expansion work like I expect?
+
+Section F:  Things to watch out for on certain Unix versions
+
+F1) Why can't I use command line editing in my `cmdtool'?
+F2) I built bash on Solaris 2.  Why do globbing expansions and filename
+    completion chop off the first few characters of each filename?
+F3) Why does bash dump core after I interrupt username completion or
+    `~user' tilde expansion on a machine running NIS?
+F4) I'm running SVR4.2.  Why is the line erased every time I type `@'?
+F5) Why does bash report syntax errors when my C News scripts use a
+    redirection before a subshell command?
+F6) Why can't I use vi-mode editing on Red Hat Linux 6.1?
+F7) Why do bash-2.05a and  bash-2.05b fail to compile `printf.def' on
+    HP/UX 11.x?
+
+Section G:  How can I get bash to do certain common things?
+
+G1) How can I get bash to read and display eight-bit characters?
+G2) How do I write a function `x' to replace builtin command `x', but
+    still invoke the command from within the function?
+G3) How can I find the value of a shell variable whose name is the value
+    of another shell variable?
+G4) How can I make the bash `time' reserved word print timing output that
+    looks like the output from my system's /usr/bin/time?
+G5) How do I get the current directory into my prompt?
+G6) How can I rename "*.foo" to "*.bar"?
+G7) How can I translate a filename from uppercase to lowercase?
+G8) How can I write a filename expansion (globbing) pattern that will match
+    all files in the current directory except "." and ".."?
+
+Section H:  Where do I go from here?
+
+H1) How do I report bugs in bash, and where should I look for fixes and
+    advice?
+H2) What kind of bash documentation is there?
+H3) What's coming in future versions?
+H4) What's on the bash `wish list'?
+H5) When will the next release appear?
+
+----------
+Section A:  The Basics
+
+A1)  What is it?
+
+Bash is a Unix command interpreter (shell).  It is an implementation of
+the Posix 1003.2 shell standard, and resembles the Korn and System V
+shells.
+
+Bash contains a number of enhancements over those shells, both
+for interactive use and shell programming.  Features geared
+toward interactive use include command line editing, command
+history, job control, aliases, and prompt expansion.  Programming
+features include additional variable expansions, shell
+arithmetic, and a number of variables and options to control
+shell behavior.
+
+Bash was originally written by Brian Fox of the Free Software
+Foundation.  The current developer and maintainer is Chet Ramey
+of Case Western Reserve University.
+
+A2)  What's the latest version?
+
+The latest version is 3.0, first made available on 27 July, 2004.
+
+A3)  Where can I get it?
+
+Bash is the GNU project's shell, and so is available from the
+master GNU archive site, ftp.gnu.org, and its mirrors.  The
+latest version is also available for FTP from ftp.cwru.edu.
+The following URLs tell how to get version 3.0:
+
+ftp://ftp.gnu.org/pub/gnu/bash/bash-3.0.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-3.0.tar.gz
+
+Formatted versions of the documentation are available with the URLs:
+
+ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.0.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-doc-3.0.tar.gz
+
+A4)  On what machines will bash run?
+
+Bash has been ported to nearly every version of Unix.  All you
+should have to do to build it on a machine for which a port
+exists is to type `configure' and then `make'.  The build process
+will attempt to discover the version of Unix you have and tailor
+itself accordingly, using a script created by GNU autoconf.
+
+More information appears in the file `INSTALL' in the distribution.
+
+The Bash web page (http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html)
+explains how to obtain binary versions of bash for most of the major
+commercial Unix systems.
+
+A5) Will bash run on operating systems other than Unix?
+
+Configuration specifics for Unix-like systems such as QNX and
+LynxOS are included in the distribution.  Bash-2.05 and later
+versions should compile and run on Minix 2.0 (patches were
+contributed), but I don't believe anyone has built bash-2.x on
+earlier Minix versions yet. 
+
+Bash has been ported to versions of Windows implementing the Win32
+programming interface.  This includes Windows 95 and Windows NT.
+The port was done by Cygnus Solutions as part of their CYGWIN
+project.  For more information about the project, look at the URLs
+
+http://www.cygwin.com/
+http://sourceware.cygnus.com/cygwin
+
+Cygnus originally ported bash-1.14.7, and that port was part of their
+early GNU-Win32 (the original name) releases.  Cygnus has also done a
+port of bash-2.05 to the CYGWIN environment, and it is available as
+part of their current release.
+
+Bash-2.05b and later versions should require no local Cygnus changes to
+build and run under CYGWIN.
+
+DJ Delorie has a port of bash-2.x which runs under MS-DOS, as part
+of the DJGPP project.  For more information on the project, see
+
+http://www.delorie.com/djgpp/
+
+I have been told that the original DJGPP port was done by Daisuke Aoyama.
+
+Mark Elbrecht <snowball3@bigfoot.com> has sent me notice that bash-2.04
+is available for DJGPP V2.  The files are available as:
+
+ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204b.zip binary
+ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204d.zip documentation
+ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204s.zip source
+
+Mark began to work with bash-2.05, but I don't know the current status.
+
+Bash-3.0 compiles and runs with no modifications under Microsoft's Services
+for Unix (SFU), once known as Interix.
+
+A6) How can I build bash with gcc? 
+
+Bash configures to use gcc by default if it is available.  Read the
+file INSTALL in the distribution for more information.
+
+A7)  How can I make bash my login shell?
+
+Some machines let you use `chsh' to change your login shell.  Other
+systems use `passwd -s' or `passwd -e'.  If one of these works for
+you, that's all you need.  Note that many systems require the full
+pathname to a shell to appear in /etc/shells before you can make it
+your login shell.  For this, you may need the assistance of your
+friendly local system administrator. 
+
+If you cannot do this, you can still use bash as your login shell, but
+you need to perform some tricks.  The basic idea is to add a command
+to your login shell's startup file to replace your login shell with
+bash.
+
+For example, if your login shell is csh or tcsh, and you have installed
+bash in /usr/gnu/bin/bash, add the following line to ~/.login:
+
+       if ( -f /usr/gnu/bin/bash ) exec /usr/gnu/bin/bash --login
+
+(the `--login' tells bash that it is a login shell).
+
+It's not a good idea to put this command into ~/.cshrc, because every
+csh you run without the `-f' option, even ones started to run csh scripts,
+reads that file.  If you must put the command in ~/.cshrc, use something
+like
+
+       if ( $?prompt ) exec /usr/gnu/bin/bash --login
+
+to ensure that bash is exec'd only when the csh is interactive.
+
+If your login shell is sh or ksh, you have to do two things.
+
+First, create an empty file in your home directory named `.bash_profile'.
+The existence of this file will prevent the exec'd bash from trying to
+read ~/.profile, and re-execing itself over and over again.  ~/.bash_profile
+is the first file bash tries to read initialization commands from when
+it is invoked as a login shell.
+
+Next, add a line similar to the above to ~/.profile:
+
+       [ -f /usr/gnu/bin/bash ] && [ -x /usr/gnu/bin/bash ] && \
+               exec /usr/gnu/bin/bash --login
+
+This will cause login shells to replace themselves with bash running as
+a login shell.  Once you have this working, you can copy your initialization
+code from ~/.profile to ~/.bash_profile.
+
+I have received word that the recipe supplied above is insufficient for
+machines running CDE.  CDE has a maze of twisty little startup files, all
+slightly different.
+
+If you cannot change your login shell in the password file to bash, you
+will have to (apparently) live with CDE using the shell in the password
+file to run its startup scripts.  If you have changed your shell to bash,
+there is code in the CDE startup files (on Solaris, at least) that attempts
+to do the right thing.  It is, however, often broken, and may require that
+you use the $BASH_ENV trick described below.
+
+`dtterm' claims to use $SHELL as the default program to start, so if you
+can change $SHELL in the CDE startup files, you should be able to use bash
+in your terminal windows.
+
+Setting DTSOURCEPROFILE in ~/.dtprofile will cause the `Xsession' program
+to read your login shell's startup files.  You may be able to use bash for
+the rest of the CDE programs by setting SHELL to bash in ~/.dtprofile as
+well, but I have not tried this.
+
+You can use the above `exec' recipe to start bash when not logging in with
+CDE by testing the value of the DT variable:
+
+       if [ -n "$DT" ]; then
+               [ -f /usr/gnu/bin/bash ] && exec /usr/gnu/bin/bash --login
+       fi
+
+If CDE starts its shells non-interactively during login, the login shell
+startup files (~/.profile, ~/.bash_profile) will not be sourced at login.
+To get around this problem, append a line similar to the following to your
+~/.dtprofile:
+
+       BASH_ENV=${HOME}/.bash_profile ; export BASH_ENV
+
+and add the following line to the beginning of ~/.bash_profile:
+
+       unset BASH_ENV
+
+A8) I just changed my login shell to bash, and now I can't FTP into my
+   machine.  Why not?
+
+You must add the full pathname to bash to the file /etc/shells.  As
+noted in the answer to the previous question, many systems require
+this before you can make bash your login shell. 
+
+Most versions of ftpd use this file to prohibit `special' users
+such as `uucp' and `news' from using FTP. 
+
+A9)  What's the `POSIX Shell and Utilities standard'?
+
+POSIX is a name originally coined by Richard Stallman for a
+family of open system standards based on UNIX.  There are a
+number of aspects of UNIX under consideration for
+standardization, from the basic system services at the system
+call and C library level to applications and tools to system
+administration and management.  Each area of standardization is
+assigned to a working group in the 1003 series. 
+
+The POSIX Shell and Utilities standard was originally developed by
+IEEE Working Group 1003.2 (POSIX.2).  Today it has been merged with
+the original 1003.1 Working Group and is maintained by the Austin
+Group (a joint working group of the IEEE, The Open Group and
+ISO/IEC SC22/WG15).  Today the Shell and Utilities are a volume
+within the set of documents that make up IEEE Std 1003.1-2001, and
+thus now the former POSIX.2 (from 1992) is now part of the current
+POSIX.1 standard (POSIX 1003.1-2001). 
+
+The Shell and Utilities volume concentrates on the command
+interpreter interface and utility programs commonly executed from
+the command line or by other programs.  The standard is freely
+available on the web at http://www.UNIX-systems.org/version3/ . 
+Work continues at the Austin Group on maintenance issues; see
+http://www.opengroup.org/austin/ to join the discussions. 
+
+Bash is concerned with the aspects of the shell's behavior defined
+by the POSIX Shell and Utilities volume.  The shell command
+language has of course been standardized, including the basic flow
+control and program execution constructs, I/O redirection and
+pipelining, argument handling, variable expansion, and quoting. 
+
+The `special' builtins, which must be implemented as part of the
+shell to provide the desired functionality, are specified as
+being part of the shell; examples of these are `eval' and
+`export'.  Other utilities appear in the sections of POSIX not
+devoted to the shell which are commonly (and in some cases must
+be) implemented as builtin commands, such as `read' and `test'. 
+POSIX also specifies aspects of the shell's interactive
+behavior as part of the UPE, including job control and command
+line editing.  Only vi-style line editing commands have been
+standardized; emacs editing commands were left out due to
+objections.
+
+The latest version of the POSIX Shell and Utilities standard is
+available (now updated to the 2004 Edition) as part of the Single
+UNIX Specification Version 3 at
+
+http://www.UNIX-systems.org/version3/
+
+A10)  What is the bash `posix mode'?
+
+Although bash is an implementation of the POSIX shell
+specification, there are areas where the bash default behavior
+differs from that spec.  The bash `posix mode' changes the bash
+behavior in these areas so that it obeys the spec more closely. 
+
+Posix mode is entered by starting bash with the --posix or
+'-o posix' option or executing `set -o posix' after bash is running.
+
+The specific aspects of bash which change when posix mode is
+active are listed in the file POSIX in the bash distribution.
+They are also listed in a section in the Bash Reference Manual
+(from which that file is generated).
+
+Section B:  The latest version
+
+B1) What's new in version 3.0?
+
+Bash-3.0 is the third major release of bash.  The features introduced
+in the intermediate releases following bash-2.05 have been completed.
+Support for the bash debugger (a separate project) has been integrated.
+
+Bash-3.0 contains the following new features (see the manual page for
+complete descriptions and the CHANGES and NEWS files in the bash-3.0
+distribution):
+
+o Features to support the bash debugger have been implemented, and there
+  is a new `extdebug' option to turn the non-default options on
+
+o HISTCONTROL is now a colon-separated list of options and has been
+  extended with a new `erasedups' option that will result in only one
+  copy of a command being kept in the history list
+
+o Brace expansion has been extended with a new {x..y} form, producing
+  sequences of digits or characters
+
+o Timestamps are now kept with history entries, with an option to save
+  and restore them from the history file; there is a new HISTTIMEFORMAT
+  variable describing how to display the timestamps when listing history
+  entries
+
+o The `[[' command can now perform extended regular expression (egrep-like)
+  matching, with matched subexpressions placed in the BASH_REMATCH array
+  variable
+
+o A new `pipefail' option causes a pipeline to return a failure status if
+  any command in it fails
+
+o The `jobs', `kill', and `wait' builtins now accept job control notation
+  in their arguments even if job control is not enabled
+
+o The `gettext' package and libintl have been integrated, and the shell
+  messages may be translated into other languages
+
+A short feature history dating from Bash-2.0:
+
+Bash-2.05b introduced the following new features:
+
+o support for multibyte characters has been added to both bash and readline
+
+o the DEBUG trap is now run *before* simple commands, ((...)) commands,
+  [[...]] conditional commands, and for ((...)) loops
+
+o the shell now performs arithmetic in the largest integer size the machine
+  supports (intmax_t)
+
+o there is a new \D{...} prompt expansion; passes the `...' to strftime(3)
+  and inserts the result into the expanded prompt
+
+o there is a new `here-string' redirection operator:  <<< word
+
+o when displaying variables, function attributes and definitions are shown
+  separately, allowing them to be re-used as input (attempting to re-use
+  the old output would result in syntax errors).
+
+o `read' has a new `-u fd' option to read from a specified file descriptor
+
+o the bash debugger in examples/bashdb has been modified to work with the
+  new DEBUG trap semantics, the command set has been made more gdb-like,
+  and the changes to $LINENO make debugging functions work better
+
+o the expansion of $LINENO inside a shell function is only relative to the
+  function start if the shell is interactive -- if the shell is running a
+  script, $LINENO expands to the line number in the script.  This is as
+  POSIX-2001 requires
+
+Bash-2.05a introduced the following new features:
+
+o The `printf' builtin has undergone major work
+
+o There is a new read-only `shopt' option: login_shell, which is set by
+  login shells and unset otherwise
+
+o New `\A' prompt string escape sequence; expanding to time in 24-hour
+  HH:MM format
+
+o New `-A group/-g' option to complete and compgen; goes group name
+  completion
+
+o New [+-]O invocation option to set and unset `shopt' options at startup
+
+o ksh-like `ERR' trap
+
+o `for' loops now allow empty word lists after the `in' reserved word
+
+o new `hard' and `soft' arguments for the `ulimit' builtin
+
+o Readline can be configured to place the user at the same point on the line
+  when retrieving commands from the history list
+
+o Readline can be configured to skip `hidden' files (filenames with a leading
+  `.' on Unix) when performing completion
+
+Bash-2.05 introduced the following new features:
+
+o This version has once again reverted to using locales and strcoll(3) when
+  processing pattern matching bracket expressions, as POSIX requires. 
+o Added a new `--init-file' invocation argument as a synonym for `--rcfile',
+  per the new GNU coding standards.
+o The /dev/tcp and /dev/udp redirections now accept service names as well as
+  port numbers.
+o `complete' and `compgen' now take a `-o value' option, which controls some
+   of the aspects of that compspec.  Valid values are:
+
+        default - perform bash default completion if programmable
+                  completion produces no matches
+        dirnames - perform directory name completion if programmable
+                   completion produces no matches
+        filenames - tell readline that the compspec produces filenames,
+                    so it can do things like append slashes to
+                    directory names and suppress trailing spaces
+o A new loadable builtin, realpath, which canonicalizes and expands symlinks
+  in pathname arguments.
+o When `set' is called without options, it prints function defintions in a
+  way that allows them to be reused as input.  This affects `declare' and 
+  `declare -p' as well.  This only happens when the shell is not in POSIX
+   mode, since POSIX.2 forbids this behavior.
+
+Bash-2.04 introduced the following new features:
+
+o Programmable word completion with the new `complete' and `compgen' builtins;
+  examples are provided in examples/complete/complete-examples
+o `history' has a new `-d' option to delete a history entry
+o `bind' has a new `-x' option to bind key sequences to shell commands
+o The prompt expansion code has new `\j' and `\l' escape sequences
+o The `no_empty_cmd_completion' shell option, if enabled, inhibits
+  command completion when TAB is typed on an empty line
+o `help' has a new `-s' option to print a usage synopsis
+o New arithmetic operators: var++, var--, ++var, --var, expr1,expr2 (comma)
+o New ksh93-style arithmetic for command:
+       for ((expr1 ; expr2; expr3 )); do list; done
+o `read' has new options: `-t', `-n', `-d', `-s'
+o The redirection code handles several filenames specially:  /dev/fd/N,
+  /dev/stdin, /dev/stdout, /dev/stderr
+o The redirection code now recognizes /dev/tcp/HOST/PORT and
+  /dev/udp/HOST/PORT and tries to open a TCP or UDP socket, respectively,
+  to the specified port on the specified host
+o The ${!prefix*} expansion has been implemented
+o A new FUNCNAME variable, which expands to the name of a currently-executing
+  function
+o The GROUPS variable is no longer readonly
+o A new shopt `xpg_echo' variable, to control the behavior of echo with
+  respect to backslash-escape sequences at runtime
+o The NON_INTERACTIVE_LOGIN_SHELLS #define has returned
+
+The version of Readline released with Bash-2.04, Readline-4.1, had several
+new features as well:
+
+o Parentheses matching is always compiled into readline, and controllable
+  with the new `blink-matching-paren' variable
+o The history-search-forward and history-search-backward functions now leave
+  point at the end of the line when the search string is empty, like
+  reverse-search-history, and forward-search-history
+o A new function for applications:  rl_on_new_line_with_prompt()
+o New variables for applications:  rl_already_prompted, and rl_gnu_readline_p
+
+
+Bash-2.03 had very few new features, in keeping with the convention
+that odd-numbered releases provide mainly bug fixes.  A number of new
+features were added to Readline, mostly at the request of the Cygnus
+folks.
+
+A new shopt option, `restricted_shell', so that startup files can test
+       whether or not the shell was started in restricted mode
+Filename generation is now performed on the words between ( and ) in
+       compound array assignments (this is really a bug fix)
+OLDPWD is now auto-exported, as POSIX.2 requires
+ENV and BASH_ENV are read-only variables in a restricted shell
+Bash may now be linked against an already-installed Readline library,
+       as long as the Readline library is version 4 or newer
+All shells begun with the `--login' option will source the login shell
+       startup files, even if the shell is not interactive
+
+There were lots of changes to the version of the Readline library released
+along with Bash-2.03.  For a complete list of the changes, read the file
+CHANGES in the Bash-2.03 distribution.
+
+Bash-2.02 contained the following new features:
+
+a new version of malloc (based on the old GNU malloc code in previous
+       bash versions) that is more page-oriented, more conservative
+       with memory usage, does not `orphan' large blocks when they
+       are freed, is usable on 64-bit machines, and has allocation
+       checking turned on unconditionally
+POSIX.2-style globbing character classes ([:alpha:], [:alnum:], etc.)
+POSIX.2-style globbing equivalence classes
+POSIX.2-style globbing collating symbols
+the ksh [[...]] extended conditional command
+the ksh egrep-style extended pattern matching operators
+a new `printf' builtin
+the ksh-like $(<filename) command substitution, which is equivalent to
+       $(cat filename)
+new tilde prefixes that expand to directories from the directory stack
+new `**' arithmetic operator to do exponentiation
+case-insensitive globbing (filename expansion)
+menu completion a la tcsh
+`magic-space' history expansion function like tcsh
+the readline inputrc `language' has a new file inclusion directive ($include)
+
+Bash-2.01 contained only a few new features:
+
+new `GROUPS' builtin array variable containing the user's group list
+new bindable readline commands: history-and-alias-expand-line and
+       alias-expand-line
+
+Bash-2.0 contained extensive changes and new features from bash-1.14.7.
+Here's a short list:
+
+new `time' reserved word to time pipelines, shell builtins, and
+       shell functions
+one-dimensional arrays with a new compound assignment statement,
+        appropriate expansion constructs and modifications to some
+       of the builtins (read, declare, etc.) to use them
+new quoting syntaxes for ANSI-C string expansion and locale-specific
+       string translation
+new expansions to do substring extraction, pattern replacement, and
+       indirect variable expansion
+new builtins: `disown' and `shopt'
+new variables: HISTIGNORE, SHELLOPTS, PIPESTATUS, DIRSTACK, GLOBIGNORE,
+              MACHTYPE, BASH_VERSINFO
+special handling of many unused or redundant variables removed
+       (e.g., $notify, $glob_dot_filenames, $no_exit_on_failed_exec)
+dynamic loading of new builtin commands; many loadable examples provided
+new prompt expansions: \a, \e, \n, \H, \T, \@, \v, \V
+history and aliases available in shell scripts
+new readline variables: enable-keypad, mark-directories, input-meta,
+       visible-stats, disable-completion, comment-begin
+new readline commands to manipulate the mark and operate on the region
+new readline emacs mode commands and bindings for ksh-88 compatibility
+updated and extended builtins
+new DEBUG trap
+expanded (and now documented) restricted shell mode
+
+implementation stuff:  
+autoconf-based configuration
+nearly all of the bugs reported since version 1.14 have been fixed
+most builtins converted to use builtin `getopt' for consistency
+most builtins use -p option to display output in a reusable form
+       (for consistency)
+grammar tighter and smaller (66 reduce-reduce conflicts gone)
+lots of code now smaller and faster
+test suite greatly expanded
+
+B2) Are there any user-visible incompatibilities between bash-3.0 and
+    bash-1.14.7?
+
+There are a few incompatibilities between version 1.14.7 and version 3.0.
+They are detailed in the file COMPAT in the bash distribution.  That file
+is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org
+if if you find something that's not mentioned there.
+
+Section C:  Differences from other Unix shells
+
+C1) How does bash differ from sh, the Bourne shell?
+
+This is a non-comprehensive list of features that differentiate bash
+from the SVR4.2 shell.  The bash manual page explains these more
+completely.
+
+Things bash has that sh does not:
+       long invocation options
+       [+-]O invocation option
+       -l invocation option
+       `!' reserved word to invert pipeline return value
+       `time' reserved word to time pipelines and shell builtins
+       the `function' reserved word
+       the `select' compound command and reserved word
+       arithmetic for command: for ((expr1 ; expr2; expr3 )); do list; done
+       new $'...' and $"..." quoting
+       the $(...) form of command substitution
+       the $(<filename) form of command substitution, equivalent to
+               $(cat filename)
+       the ${#param} parameter value length operator
+       the ${!param} indirect parameter expansion operator
+       the ${!param*} prefix expansion operator
+       the ${param:offset[:length]} parameter substring operator
+       the ${param/pat[/string]} parameter pattern substitution operator
+       expansions to perform substring removal (${p%[%]w}, ${p#[#]w})
+       expansion of positional parameters beyond $9 with ${num}
+       variables: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, REPLY,
+                  TIMEFORMAT, PPID, PWD, OLDPWD, SHLVL, RANDOM, SECONDS,
+                  LINENO, HISTCMD, HOSTTYPE, OSTYPE, MACHTYPE, HOSTNAME,
+                  ENV, PS3, PS4, DIRSTACK, PIPESTATUS, HISTSIZE, HISTFILE,
+                  HISTFILESIZE, HISTCONTROL, HISTIGNORE, GLOBIGNORE, GROUPS,
+                  PROMPT_COMMAND, FCEDIT, FIGNORE, IGNOREEOF, INPUTRC,
+                  SHELLOPTS, OPTERR, HOSTFILE, TMOUT, FUNCNAME, histchars,
+                  auto_resume
+       DEBUG trap
+       ERR trap
+       variable arrays with new compound assignment syntax
+       redirections: <>, &>, >|, <<<, [n]<&word-, [n]>&word-
+       prompt string special char translation and variable expansion
+       auto-export of variables in initial environment
+       command search finds functions before builtins
+       bash return builtin will exit a file sourced with `.'
+       builtins: cd -/-L/-P, exec -l/-c/-a, echo -e/-E, hash -d/-l/-p/-t.
+                 export -n/-f/-p/name=value, pwd -L/-P,
+                 read -e/-p/-a/-t/-n/-d/-s/-u,
+                 readonly -a/-f/name=value, trap -l, set +o,
+                 set -b/-m/-o option/-h/-p/-B/-C/-H/-P,
+                 unset -f/-v, ulimit -m/-p/-u,
+                 type -a/-p/-t/-f/-P, suspend -f, kill -n,
+                 test -o optname/s1 == s2/s1 < s2/s1 > s2/-nt/-ot/-ef/-O/-G/-S
+       bash reads ~/.bashrc for interactive shells, $ENV for non-interactive
+       bash restricted shell mode is more extensive
+       bash allows functions and variables with the same name
+       brace expansion
+       tilde expansion
+       arithmetic expansion with $((...)) and `let' builtin
+       the `[[...]]' extended conditional command
+       process substitution
+       aliases and alias/unalias builtins
+       local variables in functions and `local' builtin
+       readline and command-line editing with programmable completion
+       command history and history/fc builtins
+       csh-like history expansion
+       other new bash builtins: bind, command, compgen, complete, builtin,
+                                declare/typeset, dirs, enable, fc, help,
+                                history, logout, popd, pushd, disown, shopt,
+                                printf
+       exported functions
+       filename generation when using output redirection (command >a*)
+       POSIX.2-style globbing character classes
+       POSIX.2-style globbing equivalence classes
+       POSIX.2-style globbing collating symbols
+       egrep-like extended pattern matching operators
+       case-insensitive pattern matching and globbing
+       variable assignments preceding commands affect only that command,
+               even for builtins and functions
+       posix mode
+       redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr,
+               /dev/tcp/host/port, /dev/udp/host/port
+       debugger support, including `caller' builtin and new variables
+       RETURN trap
+
+
+Things sh has that bash does not:
+       uses variable SHACCT to do shell accounting
+       includes `stop' builtin (bash can use alias stop='kill -s STOP')
+       `newgrp' builtin
+       turns on job control if called as `jsh'
+       $TIMEOUT (like bash $TMOUT)
+       `^' is a synonym for `|'
+       new SVR4.2 sh builtins: mldmode, priv
+
+Implementation differences:
+       redirection to/from compound commands causes sh to create a subshell
+       bash does not allow unbalanced quotes; sh silently inserts them at EOF
+       bash does not mess with signal 11
+       sh sets (euid, egid) to (uid, gid) if -p not supplied and uid < 100
+       bash splits only the results of expansions on IFS, using POSIX.2
+               field splitting rules; sh splits all words on IFS
+       sh does not allow MAILCHECK to be unset (?)
+       sh does not allow traps on SIGALRM or SIGCHLD
+       bash allows multiple option arguments when invoked (e.g. -x -v);
+               sh allows only a single option argument (`sh -x -v' attempts
+               to open a file named `-v', and, on SunOS 4.1.4, dumps core.
+               On Solaris 2.4 and earlier versions, sh goes into an infinite
+               loop.)
+       sh exits a script if any builtin fails; bash exits only if one of
+               the POSIX.2 `special' builtins fails
+
+C2)  How does bash differ from the Korn shell, version ksh88?
+
+Things bash has or uses that ksh88 does not:
+       long invocation options
+       [-+]O invocation option
+       -l invocation option
+       `!' reserved word
+       arithmetic for command: for ((expr1 ; expr2; expr3 )); do list; done
+       arithmetic in largest machine-supported size (intmax_t)
+       posix mode and posix conformance
+       command hashing
+       tilde expansion for assignment statements that look like $PATH
+       process substitution with named pipes if /dev/fd is not available
+       the ${!param} indirect parameter expansion operator
+       the ${!param*} prefix expansion operator
+       the ${param:offset[:length]} parameter substring operator
+       the ${param/pat[/string]} parameter pattern substitution operator
+       variables: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, SHLVL,
+                  TIMEFORMAT, HISTCMD, HOSTTYPE, OSTYPE, MACHTYPE,
+                  HISTFILESIZE, HISTIGNORE, HISTCONTROL, PROMPT_COMMAND,
+                  IGNOREEOF, FIGNORE, INPUTRC, HOSTFILE, DIRSTACK,
+                  PIPESTATUS, HOSTNAME, OPTERR, SHELLOPTS, GLOBIGNORE,
+                  GROUPS, FUNCNAME, histchars, auto_resume
+       prompt expansion with backslash escapes and command substitution
+       redirection: &> (stdout and stderr), <<<, [n]<&word-, [n]>&word-
+       more extensive and extensible editing and programmable completion
+       builtins: bind, builtin, command, declare, dirs, echo -e/-E, enable,
+                 exec -l/-c/-a, fc -s, export -n/-f/-p, hash, help, history,
+                 jobs -x/-r/-s, kill -s/-n/-l, local, logout, popd, pushd,
+                 read -e/-p/-a/-t/-n/-d/-s, readonly -a/-n/-f/-p,
+                 set -o braceexpand/-o histexpand/-o interactive-comments/
+                 -o notify/-o physical/-o posix/-o hashall/-o onecmd/
+                 -h/-B/-C/-b/-H/-P, set +o, suspend, trap -l, type,
+                 typeset -a/-F/-p, ulimit -u, umask -S, alias -p, shopt,
+                 disown, printf, complete, compgen
+       `!' csh-style history expansion
+       POSIX.2-style globbing character classes
+       POSIX.2-style globbing equivalence classes
+       POSIX.2-style globbing collating symbols
+       egrep-like extended pattern matching operators
+       case-insensitive pattern matching and globbing
+       `**' arithmetic operator to do exponentiation
+       redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr
+       arrays of unlimited size
+       TMOUT is default timeout for `read' and `select'
+       debugger support, including the `caller' builtin
+       RETURN trap
+       Timestamps in history entries
+       {x..y} brace expansion
+
+Things ksh88 has or uses that bash does not:
+       tracked aliases (alias -t)
+       variables: ERRNO, FPATH, EDITOR, VISUAL
+       co-processes (|&, >&p, <&p)
+       weirdly-scoped functions
+       typeset +f to list all function names without definitions
+       text of command history kept in a file, not memory
+       builtins: alias -x, cd old new, newgrp, print,
+                 read -p/-s/var?prompt, set -A/-o gmacs/
+                 -o bgnice/-o markdirs/-o trackall/-o viraw/-s,
+                 typeset -H/-L/-R/-Z/-A/-ft/-fu/-fx/-l/-u/-t, whence
+       using environment to pass attributes of exported variables
+       arithmetic evaluation done on arguments to some builtins
+       reads .profile from $PWD when invoked as login shell
+
+Implementation differences:
+       ksh runs last command of a pipeline in parent shell context
+       bash has brace expansion by default (ksh88 compile-time option)
+       bash has fixed startup file for all interactive shells; ksh reads $ENV
+       bash has exported functions
+       bash command search finds functions before builtins
+       bash waits for all commands in pipeline to exit before returning status
+       emacs-mode editing has some slightly different key bindings
+
+C3)  Which new features in ksh-93 are not in bash, and which are?
+
+New things in ksh-93 not in bash-3.0:
+       associative arrays
+       floating point arithmetic and variables
+       math library functions
+       ${!name[sub]} name of subscript for associative array
+       `.' is allowed in variable names to create a hierarchical namespace
+       more extensive compound assignment syntax
+       discipline functions
+       `sleep' and `getconf' builtins (bash has loadable versions)
+       typeset -n and `nameref' variables
+       KEYBD trap
+       variables: .sh.edchar, .sh.edmode, .sh.edcol, .sh.edtext, .sh.version,
+                  .sh.name, .sh.subscript, .sh.value, .sh.match, HISTEDIT
+       backreferences in pattern matching (\N)
+       `&' operator in pattern lists for matching
+       print -f (bash uses printf)
+       `fc' has been renamed to `hist'
+       `.' can execute shell functions
+       exit statuses between 0 and 255
+       `+=' variable assignment operator
+       FPATH and PATH mixing
+       getopts -a
+       -I invocation option
+       printf %H, %P, %T, %Z modifiers, output base for %d
+       lexical scoping for local variables in `ksh' functions
+       no scoping for local variables in `POSIX' functions
+
+New things in ksh-93 present in bash-3.0:
+       [n]<&word- and [n]>&word- redirections (combination dup and close)
+        for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command
+        ?:, ++, --, `expr1 , expr2' arithmetic operators
+       expansions: ${!param}, ${param:offset[:len]}, ${param/pat[/str]},
+                   ${!param*}
+       compound array assignment
+       the `!' reserved word
+       loadable builtins -- but ksh uses `builtin' while bash uses `enable'
+       `command', `builtin', `disown' builtins
+       new $'...' and $"..." quoting
+       FIGNORE (but bash uses GLOBIGNORE), HISTCMD
+       set -o notify/-C
+       changes to kill builtin
+       read -A (bash uses read -a)
+        read -t/-d
+       trap -p
+       exec -c/-a
+       `.' restores the positional parameters when it completes
+       POSIX.2 `test'
+       umask -S
+       unalias -a
+       command and arithmetic substitution performed on PS1, PS4, and ENV
+       command name completion
+       ENV processed only for interactive shells
+       set -o pipefail
+
+Section D:  Why does bash do some things differently than other Unix shells?
+
+D1) Why does bash run a different version of `command' than
+    `which command' says it will?
+
+On many systems, `which' is actually a csh script that assumes
+you're running csh.  In tcsh, `which' and its cousin `where'
+are builtins.  On other Unix systems, `which' is a perl script
+that uses the PATH environment variable.
+
+The csh script version reads the csh startup files from your
+home directory and uses those to determine which `command' will
+be invoked.  Since bash doesn't use any of those startup files,
+there's a good chance that your bash environment differs from
+your csh environment.  The bash `type' builtin does everything
+`which' does, and will report correct results for the running
+shell.  If you're really wedded to the name `which', try adding
+the following function definition to your .bashrc:
+
+       which()
+       {
+               builtin type "$@"
+       }
+
+If you're moving from tcsh and would like to bring `where' along
+as well, use this function:
+
+       where()
+       {
+               builtin type -a "$@"
+       }
+
+D2) Why doesn't bash treat brace expansions exactly like csh?
+
+The only difference between bash and csh brace expansion is that
+bash requires a brace expression to contain at least one unquoted
+comma if it is to be expanded.  Any brace-surrounded word not
+containing an unquoted comma is left unchanged by the brace
+expansion code.  This affords the greatest degree of sh
+compatibility. 
+
+Bash, ksh, zsh, and pd-ksh all implement brace expansion this way. 
+
+D3) Why doesn't bash have csh variable modifiers?
+
+Posix has specified a more powerful, albeit somewhat more cryptic,
+mechanism cribbed from ksh, and bash implements it.
+
+${parameter%word}
+        Remove smallest suffix pattern.  The WORD is expanded to produce
+        a pattern.  It then expands to the value of PARAMETER, with the
+        smallest portion of the suffix matched by the pattern deleted.
+
+        x=file.c
+        echo ${x%.c}.o
+        -->file.o
+
+${parameter%%word}
+
+        Remove largest suffix pattern.  The WORD is expanded to produce
+        a pattern.  It then expands to the value of PARAMETER, with the
+        largest portion of the suffix matched by the pattern deleted.
+
+        x=posix/src/std
+        echo ${x%%/*}
+        -->posix
+
+${parameter#word}
+        Remove smallest prefix pattern.  The WORD is expanded to produce
+        a pattern.  It then expands to the value of PARAMETER, with the
+        smallest portion of the prefix matched by the pattern deleted.
+
+        x=$HOME/src/cmd
+        echo ${x#$HOME}
+        -->/src/cmd
+
+${parameter##word}
+        Remove largest prefix pattern.  The WORD is expanded to produce
+        a pattern.  It then expands to the value of PARAMETER, with the
+        largest portion of the prefix matched by the pattern deleted.
+
+        x=/one/two/three
+        echo ${x##*/}
+        -->three
+
+
+Given
+       a=/a/b/c/d
+       b=b.xxx
+
+       csh                     bash            result
+       ---                     ----            ------
+       $a:h                    ${a%/*}            /a/b/c
+       $a:t                    ${a##*/}           d
+       $b:r                    ${b%.*}            b
+       $b:e                    ${b##*.}           xxx
+
+
+D4) How can I make my csh aliases work when I convert to bash?
+
+Bash uses a different syntax to support aliases than csh does. 
+The details can be found in the documentation.  We have provided
+a shell script which does most of the work of conversion for you;
+this script can be found in ./examples/misc/aliasconv.sh.  Here is
+how you use it:
+  
+Start csh in the normal way for you.  (e.g., `csh')
+  
+Pipe the output of `alias' through `aliasconv.sh', saving the
+results into `bash_aliases':
+  
+       alias | bash aliasconv.sh >bash_aliases
+  
+Edit `bash_aliases', carefully reading through any created
+functions.  You will need to change the names of some csh specific
+variables to the bash equivalents.  The script converts $cwd to
+$PWD, $term to $TERM, $home to $HOME, $user to $USER, and $prompt
+to $PS1.  You may also have to add quotes to avoid unwanted
+expansion.
+
+For example, the csh alias:
+  
+       alias cd 'cd \!*; echo $cwd'
+  
+is converted to the bash function:
+
+       cd () { command cd "$@"; echo $PWD ; }
+
+The only thing that needs to be done is to quote $PWD:
+  
+       cd () { command cd "$@"; echo "$PWD" ; }
+  
+Merge the edited file into your ~/.bashrc.
+
+There is an additional, more ambitious, script in
+examples/misc/cshtobash that attempts to convert your entire csh
+environment to its bash equivalent.  This script can be run as
+simply `cshtobash' to convert your normal interactive
+environment, or as `cshtobash ~/.login' to convert your login
+environment. 
+
+D5) How can I pipe standard output and standard error from one command to
+    another, like csh does with `|&'?
+
+Use
+       command 2>&1 | command2
+
+The key is to remember that piping is performed before redirection, so
+file descriptor 1 points to the pipe when it is duplicated onto file
+descriptor 2.
+
+D6) Now that I've converted from ksh to bash, are there equivalents to
+    ksh features like autoloaded functions and the `whence' command?
+
+There are features in ksh-88 and ksh-93 that do not have direct bash
+equivalents.  Most, however, can be emulated with very little trouble.
+
+ksh-88 feature         Bash equivalent
+--------------         ---------------
+compiled-in aliases    set up aliases in .bashrc; some ksh aliases are
+                       bash builtins (hash, history, type)
+coprocesses            named pipe pairs (one for read, one for write)
+typeset +f             declare -F
+cd, print, whence      function substitutes in examples/functions/kshenv
+autoloaded functions   examples/functions/autoload is the same as typeset -fu
+read var?prompt                read -p prompt var
+
+ksh-93 feature         Bash equivalent
+--------------         ---------------
+sleep, getconf         Bash has loadable versions in examples/loadables
+${.sh.version}         $BASH_VERSION
+print -f               printf
+hist                   alias hist=fc
+$HISTEDIT              $FCEDIT
+
+Section E:  How can I get bash to do certain things, and why does bash do
+           things the way it does?
+
+E1) Why is the bash builtin `test' slightly different from /bin/test?
+
+The specific example used here is [ ! x -o x ], which is false.
+
+Bash's builtin `test' implements the Posix.2 spec, which can be
+summarized as follows (the wording is due to David Korn):
+   
+Here is the set of rules for processing test arguments.
+  
+    0 Args: False
+    1 Arg:  True iff argument is not null.
+    2 Args: If first arg is !, True iff second argument is null.
+           If first argument is unary, then true if unary test is true
+           Otherwise error.
+    3 Args: If second argument is a binary operator, do binary test of $1 $3
+           If first argument is !, negate two argument test of $2 $3
+           If first argument is `(' and third argument is `)', do the
+           one-argument test of the second argument.
+           Otherwise error.
+    4 Args: If first argument is !, negate three argument test of $2 $3 $4.
+           Otherwise unspecified
+    5 or more Args: unspecified.  (Historical shells would use their
+    current algorithm).
+   
+The operators -a and -o are considered binary operators for the purpose
+of the 3 Arg case.
+   
+As you can see, the test becomes (not (x or x)), which is false.
+
+E2) Why does bash sometimes say `Broken pipe'?
+
+If a sequence of commands appears in a pipeline, and one of the
+reading commands finishes before the writer has finished, the
+writer receives a SIGPIPE signal.  Many other shells special-case
+SIGPIPE as an exit status in the pipeline and do not report it. 
+For example, in:
+  
+      ps -aux | head
+  
+`head' can finish before `ps' writes all of its output, and ps
+will try to write on a pipe without a reader.  In that case, bash
+will print `Broken pipe' to stderr when ps is killed by a
+SIGPIPE. 
+
+You can build a version of bash that will not report SIGPIPE errors
+by uncommenting the definition of DONT_REPORT_SIGPIPE in the file
+config-top.h.
+
+E3) When I have terminal escape sequences in my prompt, why does bash
+    wrap lines at the wrong column?
+
+Readline, the line editing library that bash uses, does not know
+that the terminal escape sequences do not take up space on the
+screen.  The redisplay code assumes, unless told otherwise, that
+each character in the prompt is a `printable' character that
+takes up one character position on the screen. 
+
+You can use the bash prompt expansion facility (see the PROMPTING
+section in the manual page) to tell readline that sequences of
+characters in the prompt strings take up no screen space. 
+
+Use the \[ escape to begin a sequence of non-printing characters,
+and the \] escape to signal the end of such a sequence. 
+
+E4) If I pipe the output of a command into `read variable', why doesn't
+    the output show up in $variable when the read command finishes?
+
+This has to do with the parent-child relationship between Unix
+processes.  It affects all commands run in pipelines, not just
+simple calls to `read'.  For example, piping a command's output
+into a `while' loop that repeatedly calls `read' will result in
+the same behavior.
+
+Each element of a pipeline runs in a separate process, a child of
+the shell running the pipeline.  A subprocess cannot affect its
+parent's environment.  When the `read' command sets the variable
+to the input, that variable is set only in the subshell, not the
+parent shell.  When the subshell exits, the value of the variable
+is lost. 
+
+Many pipelines that end with `read variable' can be converted
+into command substitutions, which will capture the output of
+a specified command.  The output can then be assigned to a
+variable:
+
+       grep ^gnu /usr/lib/news/active | wc -l | read ngroup
+
+can be converted into
+
+       ngroup=$(grep ^gnu /usr/lib/news/active | wc -l)
+
+This does not, unfortunately, work to split the text among
+multiple variables, as read does when given multiple variable
+arguments.  If you need to do this, you can either use the
+command substitution above to read the output into a variable
+and chop up the variable using the bash pattern removal
+expansion operators or use some variant of the following
+approach.
+
+Say /usr/local/bin/ipaddr is the following shell script:
+
+#! /bin/sh
+host `hostname` | awk '/address/ {print $NF}'
+
+Instead of using
+
+       /usr/local/bin/ipaddr | read A B C D
+
+to break the local machine's IP address into separate octets, use
+
+       OIFS="$IFS"
+       IFS=.
+       set -- $(/usr/local/bin/ipaddr)
+       IFS="$OIFS"
+       A="$1" B="$2" C="$3" D="$4"
+
+Beware, however, that this will change the shell's positional
+parameters.  If you need them, you should save them before doing
+this.
+
+This is the general approach -- in most cases you will not need to
+set $IFS to a different value.
+
+Some other user-supplied alternatives include:
+
+read A B C D << HERE
+    $(IFS=.; echo $(/usr/local/bin/ipaddr))
+HERE
+
+and, where process substitution is available,
+
+read A B C D < <(IFS=.; echo $(/usr/local/bin/ipaddr))
+
+E5) I have a bunch of shell scripts that use backslash-escaped characters
+    in arguments to `echo'.  Bash doesn't interpret these characters.  Why
+    not, and how can I make it understand them?
+
+This is the behavior of echo on most Unix System V machines.
+
+The bash builtin `echo' is modeled after the 9th Edition
+Research Unix version of `echo'.  It does not interpret
+backslash-escaped characters in its argument strings by default;
+it requires the use of the -e option to enable the
+interpretation.  The System V echo provides no way to disable the
+special characters; the bash echo has a -E option to disable
+them. 
+
+There is a configuration option that will make bash behave like
+the System V echo and interpret things like `\t' by default.  Run
+configure with the --enable-xpg-echo-default option to turn this
+on.  Be aware that this will cause some of the tests run when you
+type `make tests' to fail.
+
+There is a shell option, `xpg_echo', settable with `shopt', that will
+change the behavior of echo at runtime.  Enabling this option turns
+on expansion of backslash-escape sequences.
+
+E6) Why doesn't a while or for loop get suspended when I type ^Z?
+
+This is a consequence of how job control works on Unix.  The only
+thing that can be suspended is the process group.  This is a single
+command or pipeline of commands that the shell forks and executes.
+
+When you run a while or for loop, the only thing that the shell forks
+and executes are any commands in the while loop test and commands in
+the loop bodies.  These, therefore, are the only things that can be
+suspended when you type ^Z.
+
+If you want to be able to stop the entire loop, you need to put it
+within parentheses, which will force the loop into a subshell that
+may be stopped (and subsequently restarted) as a single unit.
+
+E7) What about empty for loops in Makefiles?
+
+It's fairly common to see constructs like this in automatically-generated
+Makefiles:
+
+SUBDIRS = @SUBDIRS@
+
+       ...
+
+subdirs-clean:
+       for d in ${SUBDIRS}; do \
+               ( cd $$d && ${MAKE} ${MFLAGS} clean ) \
+       done
+
+When SUBDIRS is empty, this results in a command like this being passed to
+bash:
+
+       for d in ; do
+               ( cd $d && ${MAKE} ${MFLAGS} clean )
+       done
+
+In versions of bash before bash-2.05a, this was a syntax error.  If the
+reserved word `in' was present, a word must follow it before the semicolon
+or newline.  The language in the manual page referring to the list of words
+being empty referred to the list after it is expanded.  These versions of
+bash required that there be at least one word following the `in' when the
+construct was parsed.
+
+The idiomatic Makefile solution is something like:
+
+SUBDIRS = @SUBDIRS@
+
+subdirs-clean:
+       subdirs=$SUBDIRS ; for d in $$subdirs; do \
+               ( cd $$d && ${MAKE} ${MFLAGS} clean ) \
+       done
+
+The latest updated POSIX standard has changed this:  the word list
+is no longer required.  Bash versions 2.05a and later accept the
+new syntax.
+
+E8) Why does the arithmetic evaluation code complain about `08'?
+
+The bash arithmetic evaluation code (used for `let', $(()), (()), and in
+other places), interprets a leading `0' in numeric constants as denoting
+an octal number, and a leading `0x' as denoting hexadecimal.  This is
+in accordance with the POSIX.2 spec, section 2.9.2.1, which states that
+arithmetic constants should be handled as signed long integers as defined
+by the ANSI/ISO C standard.
+
+The POSIX.2 interpretation committee has confirmed this:
+
+http://www.pasc.org/interps/unofficial/db/p1003.2/pasc-1003.2-173.html
+
+E9) Why does the pattern matching expression [A-Z]* match files beginning
+    with every letter except `z'?
+
+Bash-2.03, Bash-2.05 and later versions honor the current locale setting
+when processing ranges within pattern matching bracket expressions ([A-Z]). 
+This is what POSIX.2 and SUSv3/XPG6 specify. 
+
+The behavior of the matcher in bash-2.05 and later versions depends on the
+current LC_COLLATE setting.  Setting this variable to `C' or `POSIX' will
+result in the traditional behavior ([A-Z] matches all uppercase ASCII
+characters).  Many other locales, including the en_US locale (the default
+on many US versions of Linux) collate the upper and lower case letters like
+this:
+
+       AaBb...Zz
+
+which means that [A-Z] matches every letter except `z'.  Others collate like
+
+       aAbBcC...zZ
+
+which means that [A-Z] matches every letter except `a'.
+
+The portable way to specify upper case letters is [:upper:] instead of
+A-Z; lower case may be specified as [:lower:] instead of a-z.
+
+Look at the manual pages for setlocale(3), strcoll(3), and, if it is
+present, locale(1).  If you have locale(1), you can use it to find
+your current locale information even if you do not have any of the
+LC_ variables set.
+
+My advice is to put
+
+       export LC_COLLATE=C
+
+into /etc/profile and inspect any shell scripts run from cron for
+constructs like [A-Z].  This will prevent things like
+
+       rm [A-Z]*
+
+from removing every file in the current directory except those beginning
+with `z' and still allow individual users to change the collation order.
+Users may put the above command into their own profiles as well, of course.
+
+E10) Why does `cd //' leave $PWD as `//'?
+
+POSIX.2, in its description of `cd', says that *three* or more leading
+slashes may be replaced with a single slash when canonicalizing the
+current working directory.
+
+This is, I presume, for historical compatibility.  Certain versions of
+Unix, and early network file systems, used paths of the form
+//hostname/path to access `path' on server `hostname'.
+
+E11) If I resize my xterm while another program is running, why doesn't bash
+     notice the change?
+
+This is another issue that deals with job control.
+
+The kernel maintains a notion of a current terminal process group.  Members
+of this process group (processes whose process group ID is equal to the
+current terminal process group ID) receive terminal-generated signals like
+SIGWINCH.  (For more details, see the JOB CONTROL section of the bash
+man page.)
+
+If a terminal is resized, the kernel sends SIGWINCH to each member of
+the terminal's current process group (the `foreground' process group).
+
+When bash is running with job control enabled, each pipeline (which may be
+a single command) is run in its own process group, different from bash's
+process group.  This foreground process group receives the SIGWINCH; bash
+does not.  Bash has no way of knowing that the terminal has been resized.
+
+There is a `checkwinsize' option, settable with the `shopt' builtin, that
+will cause bash to check the window size and adjust its idea of the
+terminal's dimensions each time a process stops or exits and returns control
+of the terminal to bash.  Enable it with `shopt -s checkwinsize'.
+
+E12) Why don't negative offsets in substring expansion work like I expect?
+
+When substring expansion of the form ${param:offset[:length} is used,
+an `offset' that evaluates to a number less than zero counts back from
+the end of the expanded value of $param.
+
+When a negative `offset' begins with a minus sign, however, unexpected things
+can happen.  Consider
+
+       a=12345678
+       echo ${a:-4}
+
+intending to print the last four characters of $a.  The problem is that
+${param:-word} already has a well-defined meaning: expand to word if the
+expanded value of param is unset or null, and $param otherwise.
+
+To use negative offsets that begin with a minus sign, separate the
+minus sign and the colon with a space.
+
+Section F:  Things to watch out for on certain Unix versions
+
+F1) Why can't I use command line editing in my `cmdtool'?
+
+The problem is `cmdtool' and bash fighting over the input.  When
+scrolling is enabled in a cmdtool window, cmdtool puts the tty in
+`raw mode' to permit command-line editing using the mouse for
+applications that cannot do it themselves.  As a result, bash and
+cmdtool each try to read keyboard input immediately, with neither
+getting enough of it to be useful.
+
+This mode also causes cmdtool to not implement many of the
+terminal functions and control sequences appearing in the
+`sun-cmd' termcap entry.  For a more complete explanation, see
+that file examples/suncmd.termcap in the bash distribution. 
+
+`xterm' is a better choice, and gets along with bash much more
+smoothly.
+
+If you must use cmdtool, you can use the termcap description in
+examples/suncmd.termcap.  Set the TERMCAP variable to the terminal
+description contained in that file, i.e.
+
+TERMCAP='Mu|sun-cmd:am:bs:km:pt:li#34:co#80:cl=^L:ce=\E[K:cd=\E[J:rs=\E[s:'
+
+Then export TERMCAP and start a new cmdtool window from that shell.
+The bash command-line editing should behave better in the new
+cmdtool.  If this works, you can put the assignment to TERMCAP
+in your bashrc file.
+
+F2) I built bash on Solaris 2.  Why do globbing expansions and filename
+    completion chop off the first few characters of each filename?
+
+This is the consequence of building bash on SunOS 5 and linking
+with the libraries in /usr/ucblib, but using the definitions
+and structures from files in /usr/include. 
+
+The actual conflict is between the dirent structure in
+/usr/include/dirent.h and the struct returned by the version of
+`readdir' in libucb.a (a 4.3-BSD style `struct direct'). 
+
+Make sure you've got /usr/ccs/bin ahead of /usr/ucb in your $PATH
+when configuring and building bash.  This will ensure that you
+use /usr/ccs/bin/cc or acc instead of /usr/ucb/cc and that you
+link with libc before libucb. 
+
+If you have installed the Sun C compiler, you may also need to
+put /usr/ccs/bin and /opt/SUNWspro/bin into your $PATH before
+/usr/ucb.
+
+F3) Why does bash dump core after I interrupt username completion or
+    `~user' tilde expansion on a machine running NIS?
+
+This is a famous and long-standing bug in the SunOS YP (sorry, NIS)
+client library, which is part of libc.
+
+The YP library code keeps static state -- a pointer into the data
+returned from the server.  When YP initializes itself (setpwent),
+it looks at this pointer and calls free on it if it's non-null. 
+So far, so good. 
+
+If one of the YP functions is interrupted during getpwent (the
+exact function is interpretwithsave()), and returns NULL, the
+pointer is freed without being reset to NULL, and the function
+returns.  The next time getpwent is called, it sees that this
+pointer is non-null, calls free, and the bash free() blows up
+because it's being asked to free freed memory. 
+
+The traditional Unix mallocs allow memory to be freed multiple
+times; that's probably why this has never been fixed.  You can
+run configure with the `--without-gnu-malloc' option to use
+the C library malloc and avoid the problem.
+
+F4) I'm running SVR4.2.  Why is the line erased every time I type `@'?
+
+The `@' character is the default `line kill' character in most
+versions of System V, including SVR4.2.  You can change this
+character to whatever you want using `stty'.  For example, to
+change the line kill character to control-u, type
+
+       stty kill ^U
+
+where the `^' and `U' can be two separate characters.
+
+F5) Why does bash report syntax errors when my C News scripts use a
+    redirection before a subshell command?
+
+The actual command in question is something like
+
+       < file ( command )
+
+According to the grammar given in the POSIX.2 standard, this construct
+is, in fact, a syntax error.  Redirections may only precede `simple
+commands'.  A subshell construct such as the above is one of the shell's
+`compound commands'.  A redirection may only follow a compound command.
+
+This affects the mechanical transformation of commands that use `cat'
+to pipe a file into a command (a favorite Useless-Use-Of-Cat topic on
+comp.unix.shell).  While most commands of the form
+
+       cat file | command
+
+can be converted to `< file command', shell control structures such as
+loops and subshells require `command < file'.
+
+The file CWRU/sh-redir-hack in the bash distribution is an
+(unofficial) patch to parse.y that will modify the grammar to
+support this construct.  It will not apply with `patch'; you must
+modify parse.y by hand.  Note that if you apply this, you must
+recompile with -DREDIRECTION_HACK.  This introduces a large
+number of reduce/reduce conflicts into the shell grammar. 
+
+F6) Why can't I use vi-mode editing on Red Hat Linux 6.1?
+
+The short answer is that Red Hat screwed up.
+
+The long answer is that they shipped an /etc/inputrc that only works
+for emacs mode editing, and then screwed all the vi users by setting
+INPUTRC to /etc/inputrc in /etc/profile.
+
+The short fix is to do one of the following: remove or rename
+/etc/inputrc, set INPUTRC=~/.inputrc in ~/.bashrc (or .bash_profile,
+but make sure you export it if you do), remove the assignment to
+INPUTRC from /etc/profile, add
+
+        set keymap emacs
+
+to the beginning of /etc/inputrc, or bracket the key bindings in
+/etc/inputrc with these lines
+
+       $if mode=emacs
+               [...]
+       $endif
+
+F7) Why do bash-2.05a and bash-2.05b fail to compile `printf.def' on
+    HP/UX 11.x?
+
+HP/UX's support for long double is imperfect at best.
+
+GCC will support it without problems, but the HP C library functions
+like strtold(3) and printf(3) don't actually work with long doubles.
+HP implemented a `long_double' type as a 4-element array of 32-bit
+ints, and that is what the library functions use.  The ANSI C
+`long double' type is a 128-bit floating point scalar.
+
+The easiest fix, until HP fixes things up, is to edit the generated
+config.h and #undef the HAVE_LONG_DOUBLE line.  After doing that,
+the compilation should complete successfully.
+
+Section G:  How can I get bash to do certain common things?
+
+G1) How can I get bash to read and display eight-bit characters?
+
+This is a process requiring several steps.
+
+First, you must ensure that the `physical' data path is a full eight
+bits.  For xterms, for example, the `vt100' resources `eightBitInput'
+and `eightBitOutput' should be set to `true'.
+
+Once you have set up an eight-bit path, you must tell the kernel and
+tty driver to leave the eighth bit of characters alone when processing
+keyboard input.  Use `stty' to do this:
+
+       stty cs8 -istrip -parenb
+
+For old BSD-style systems, you can use
+
+       stty pass8
+
+You may also need
+
+       stty even odd
+
+Finally, you need to tell readline that you will be inputting and
+displaying eight-bit characters.  You use readline variables to do
+this.  These variables can be set in your .inputrc or using the bash
+`bind' builtin.  Here's an example using `bind':
+
+       bash$ bind 'set convert-meta off'
+       bash$ bind 'set meta-flag on'
+       bash$ bind 'set output-meta on'
+
+The `set' commands between the single quotes may also be placed
+in ~/.inputrc.
+
+G2) How do I write a function `x' to replace builtin command `x', but
+    still invoke the command from within the function?
+
+This is why the `command' and `builtin' builtins exist.  The
+`command' builtin executes the command supplied as its first
+argument, skipping over any function defined with that name.  The
+`builtin' builtin executes the builtin command given as its first
+argument directly. 
+
+For example, to write a function to replace `cd' that writes the
+hostname and current directory to an xterm title bar, use
+something like the following:
+
+       cd()
+       {
+               builtin cd "$@" && xtitle "$HOST: $PWD"
+       }
+
+This could also be written using `command' instead of `builtin';
+the version above is marginally more efficient. 
+
+G3) How can I find the value of a shell variable whose name is the value
+    of another shell variable?
+
+Versions of Bash newer than Bash-2.0 support this directly.  You can use 
+
+       ${!var}
+
+For example, the following sequence of commands will echo `z':
+
+       var1=var2
+       var2=z
+       echo ${!var1}
+
+For sh compatibility, use the `eval' builtin.  The important
+thing to remember is that `eval' expands the arguments you give
+it again, so you need to quote the parts of the arguments that
+you want `eval' to act on. 
+
+For example, this expression prints the value of the last positional
+parameter:
+
+       eval echo \"\$\{$#\}\"
+
+The expansion of the quoted portions of this expression will be
+deferred until `eval' runs, while the `$#' will be expanded
+before `eval' is executed.  In versions of bash later than bash-2.0,
+
+       echo ${!#}
+
+does the same thing.
+
+This is not the same thing as ksh93 `nameref' variables, though the syntax
+is similar.  I may add namerefs in a future bash version.
+
+G4) How can I make the bash `time' reserved word print timing output that
+     looks like the output from my system's /usr/bin/time?
+
+The bash command timing code looks for a variable `TIMEFORMAT' and
+uses its value as a format string to decide how to display the
+timing statistics.
+
+The value of TIMEFORMAT is a string with `%' escapes expanded in a
+fashion similar in spirit to printf(3).  The manual page explains
+the meanings of the escape sequences in the format string.
+
+If TIMEFORMAT is not set, bash acts as if the following assignment had
+been performed:
+
+       TIMEFORMAT=$'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'
+
+The POSIX.2 default time format (used by `time -p command') is
+
+       TIMEFORMAT=$'real %2R\nuser %2U\nsys %2S'
+
+The BSD /usr/bin/time format can be emulated with:
+
+       TIMEFORMAT=$'\t%1R real\t%1U user\t%1S sys'
+
+The System V /usr/bin/time format can be emulated with:
+
+       TIMEFORMAT=$'\nreal\t%1R\nuser\t%1U\nsys\t%1S'
+
+The ksh format can be emulated with:
+
+       TIMEFORMAT=$'\nreal\t%2lR\nuser\t%2lU\nsys\t%2lS'
+
+G5) How do I get the current directory into my prompt?
+
+Bash provides a number of backslash-escape sequences which are expanded
+when the prompt string (PS1 or PS2) is displayed.  The full list is in
+the manual page.
+
+The \w expansion gives the full pathname of the current directory, with
+a tilde (`~') substituted for the current value of $HOME.  The \W
+expansion gives the basename of the current directory.  To put the full
+pathname of the current directory into the path without any tilde
+subsitution, use $PWD.  Here are some examples:
+
+       PS1='\w$ '      # current directory with tilde
+       PS1='\W$ '      # basename of current directory
+       PS1='$PWD$ '    # full pathname of current directory
+
+The single quotes are important in the final example to prevent $PWD from
+being expanded when the assignment to PS1 is performed.
+
+G6) How can I rename "*.foo" to "*.bar"?
+
+Use the pattern removal functionality described in D3.  The following `for'
+loop will do the trick:
+
+       for f in *.foo; do
+               mv $f ${f%foo}bar
+       done
+
+G7) How can I translate a filename from uppercase to lowercase?
+
+The script examples/functions/lowercase, originally written by John DuBois,
+will do the trick.  The converse is left as an exercise.
+
+G8) How can I write a filename expansion (globbing) pattern that will match
+    all files in the current directory except "." and ".."?
+
+You must have set the `extglob' shell option using `shopt -s extglob' to use
+this:
+
+       echo .!(.|) *
+
+A solution that works without extended globbing is given in the Unix Shell
+FAQ, posted periodically to comp.unix.shell.
+
+Section H:  Where do I go from here?
+
+H1) How do I report bugs in bash, and where should I look for fixes and
+    advice?
+
+Use the `bashbug' script to report bugs.  It is built and
+installed at the same time as bash.  It provides a standard
+template for reporting a problem and automatically includes
+information about your configuration and build environment. 
+
+`bashbug' sends its reports to bug-bash@gnu.org, which
+is a large mailing list gatewayed to the usenet newsgroup gnu.bash.bug. 
+
+Bug fixes, answers to questions, and announcements of new releases
+are all posted to gnu.bash.bug.  Discussions concerning bash features
+and problems also take place there.
+
+To reach the bash maintainers directly, send mail to
+bash-maintainers@gnu.org.
+
+H2) What kind of bash documentation is there?
+
+First, look in the doc directory in the bash distribution.  It should
+contain at least the following files:
+
+bash.1         an extensive, thorough Unix-style manual page
+builtins.1     a manual page covering just bash builtin commands
+bashref.texi   a reference manual in GNU tex`info format
+bashref.info   an info version of the reference manual
+FAQ            this file
+article.ms     text of an article written for The Linux Journal
+readline.3     a man page describing readline
+
+Postscript, HTML, and ASCII files created from the above source are
+available in the documentation distribution.
+
+There is additional documentation available for anonymous FTP from host
+ftp.cwru.edu in the `pub/bash' directory.
+
+Cameron Newham and Bill Rosenblatt have written a book on bash, published
+by O'Reilly and Associates.  The book is based on Bill Rosenblatt's Korn
+Shell book.  The title is ``Learning the Bash Shell'', and the ISBN number
+is 1-56592-147-X.  Look for it in fine bookstores near you.  This book
+covers bash-1.14, but has an appendix describing some of the new features
+in bash-2.0.  
+
+A second edition of this book is available, published in January, 1998.
+The ISBN number is 1-56592-347-2.  Look for it in the same fine bookstores
+or on the web.
+
+The GNU Bash Reference Manual has been published as a printed book by
+Network Theory Ltd (Paperback, ISBN: 0-9541617-7-7, Feb 2003).  It covers
+bash-2.0 and is available from most online bookstores (see
+http://www.network-theory.co.uk/bash/manual/ for details).  The publisher
+will donate $1 to the Free Software Foundation for each copy sold. 
+
+H3) What's coming in future versions?
+
+These are features I hope to include in a future version of bash.
+
+Rocky Bernstein's bash debugger (support is included with bash-3.0)
+associative arrays
+co-processes, but with a new-style syntax that looks like function declaration
+
+H4) What's on the bash `wish list' for future versions?
+
+These are features that may or may not appear in a future version of bash.
+
+breaking some of the shell functionality into embeddable libraries
+a module system like zsh's, using dynamic loading like builtins
+a bash programmer's guide with a chapter on creating loadable builtins
+a better loadable interface to perl with access to the shell builtins and
+       variables (contributions gratefully accepted)
+ksh93-like `nameref' variables
+ksh93-like `+=' variable assignment operator
+ksh93-like `xx.yy' variables (including some of the .sh.* variables) and
+       associated disipline functions
+Some of the new ksh93 pattern matching operators, like backreferencing
+
+H5) When will the next release appear?
+
+The next version will appear sometime in 2005.  Never make predictions. 
+
+This document is Copyright 1995-2004 by Chester Ramey.
+
+Permission is hereby granted, without written agreement and
+without license or royalty fees, to use, copy, and distribute
+this document for any purpose, provided that the above copyright
+notice appears in all copies of this document and that the
+contents of this document remain unaltered.
index 91277b6cfa5efa35d5af99537978902bff02e194..67ca943facdcfec39f401d4adae6c75629b6e9f6 100644 (file)
@@ -6186,6 +6186,11 @@ suppressing trailing spaces).  Intended to be used with shell functions.
 .B nospace
 Tell readline not to append a space (the default) to words completed at
 the end of the line.
+.TP 8
+.B plusdirs
+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.
 .RE
 .TP 8
 \fB\-A\fP \fIaction\fP
index 584cb8cd5a63c50014dedf6255ae17d61ccc0ba4..91277b6cfa5efa35d5af99537978902bff02e194 100644 (file)
@@ -1130,6 +1130,10 @@ Expands to the positional parameters, starting from one.  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" ...
+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, "\fB$@\fP" and 
 .B $@
 expand to nothing (i.e., they are removed).
@@ -1222,7 +1226,7 @@ The command argument to the \fB\-c\fP invocation option.
 .TP
 .B BASH_LINENO
 An array variable whose members are the line numbers in source files
-corresponding to each member of @var{FUNCNAME}.
+corresponding to each member of \fBFUNCNAME\fP.
 \fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP is the line number in the source
 file where \fB${FUNCNAME[\fP\fI$i + 1\fP\fB]}\fP was called.
 The corresponding source file name is \fB${BASH_SOURCE[\fP\fI$i + 1\fP\fB]}\fB.
@@ -2035,7 +2039,12 @@ character of the
 .B IFS
 special variable, and ${\fIname\fP[@]} expands each element of
 \fIname\fP to a separate word.  When there are no array members,
-${\fIname\fP[@]} expands to nothing.  This is analogous to the expansion
+${\fIname\fP[@]} 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 \fB*\fP and \fB@\fP (see
 .B Special Parameters
 above).  ${#\fIname\fP[\fIsubscript\fP]} expands to the length of
index 2a6b6d7c2511970da2295d1274f751efdd4c1b47..559af1e30e512fab239cbec7fb84f02bf6f19b44 100644 (file)
@@ -4,7 +4,7 @@ Copyright (C) 1988-2004 Free Software Foundation, Inc.
 
 @set EDITION 3.0
 @set VERSION 3.0
-@set UPDATED 27 August 2004
-@set UPDATED-MONTH August 2004
+@set UPDATED 11 September 2004
+@set UPDATED-MONTH September 2004
 
-@set LASTCHANGE Fri Aug 27 12:15:06 EDT 2004
+@set LASTCHANGE Sat Sep 11 10:13:36 EDT 2004
index 5d1cfa75bfbf209e2f7e94a9c5ca2a19143919ff..2a6b6d7c2511970da2295d1274f751efdd4c1b47 100644 (file)
@@ -4,7 +4,7 @@ Copyright (C) 1988-2004 Free Software Foundation, Inc.
 
 @set EDITION 3.0
 @set VERSION 3.0
-@set UPDATED 2 August 2004
+@set UPDATED 27 August 2004
 @set UPDATED-MONTH August 2004
 
-@set LASTCHANGE Mon Aug  2 22:45:05 EDT 2004
+@set LASTCHANGE Fri Aug 27 12:15:06 EDT 2004
index 338ee02d8ee6d6a1fe1ecb84456d1e32bda2e000..1ef179eae918a2deb00b5ec033419a0ac7fe9dee 100644 (file)
@@ -1274,6 +1274,11 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
 
   tcom = (command->type == cm_subshell) ? command->value.Subshell->command : command;
 
+  if (command->flags & CMD_TIME_PIPELINE)
+    tcom->flags |= CMD_TIME_PIPELINE;
+  if (command->flags & CMD_TIME_POSIX)
+    tcom->flags |= CMD_TIME_POSIX;
+  
   /* Make sure the subshell inherits any CMD_IGNORE_RETURN flag. */
   if ((command->flags & CMD_IGNORE_RETURN) && tcom != command)
     tcom->flags |= CMD_IGNORE_RETURN;
index d212f61840e088cd5b66761835ef7d3a3e026411..e545bf8fac0731c373ce903c5988c20a40536008 100644 (file)
@@ -621,6 +621,8 @@ fnprint (to_print)
   mbstate_t ps;
   const char *end;
   size_t tlen;
+  int width, w;
+  wchar_t wc;
 
   end = to_print + strlen (to_print) + 1;
   memset (&ps, 0, sizeof (mbstate_t));
@@ -653,21 +655,28 @@ fnprint (to_print)
       else
        {
 #if defined (HANDLE_MULTIBYTE)
-         tlen = mbrlen (s, end - s, &ps);
+         tlen = mbrtowc (&wc, s, end - s, &ps);
          if (MB_INVALIDCH (tlen))
            {
              tlen = 1;
+             width = 1;
              memset (&ps, 0, sizeof (mbstate_t));
            }
          else if (MB_NULLWCH (tlen))
            break;
+         else
+           {
+             w = wcwidth (wc);
+             width = (w >= 0) ? w : 1;
+           }
          fwrite (s, 1, tlen, rl_outstream);
          s += tlen;
+         printed_len += width;
 #else
          putc (*s, rl_outstream);
          s++;
-#endif
          printed_len++;
+#endif
        }
     }
 
index 6fa935075fece1a9abb97d5d403c2cfad171a41f..eccfcd8a2da2266bccb3a84194aec97da17629e1 100644 (file)
@@ -1693,6 +1693,12 @@ shell functions specified with @option{-F}.
 @item nospace
 Tell Readline not to append a space (the default) to words completed at
 the end of the line.
+
+@item plusdirs
+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.
+
 @end table
 
 @item -A @var{action}
diff --git a/lib/readline/doc/rluser.texi~ b/lib/readline/doc/rluser.texi~
new file mode 100644 (file)
index 0000000..6fa9350
--- /dev/null
@@ -0,0 +1,1824 @@
+@comment %**start of header (This is for running Texinfo on a region.)
+@setfilename rluser.info
+@comment %**end of header (This is for running Texinfo on a region.)
+@setchapternewpage odd
+
+@ignore
+This file documents the end user interface to the GNU command line
+editing features.  It is to be an appendix to manuals for programs which
+use these features.  There is a document entitled "readline.texinfo"
+which contains both end-user and programmer documentation for the
+GNU Readline Library.
+
+Copyright (C) 1988-2004 Free Software Foundation, Inc.
+
+Authored by Brian Fox and Chet Ramey.
+
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission notice
+identical to this one except for the removal of this paragraph (this
+paragraph not being relevant to the printed manual).
+
+Permission is granted to make and distribute verbatim copies of this manual
+provided the copyright notice and this permission notice are preserved on
+all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that the
+GNU Copyright statement is available to the distributee, and provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+@end ignore
+
+@comment If you are including this manual as an appendix, then set the
+@comment variable readline-appendix.
+
+@ifclear BashFeatures
+@defcodeindex bt
+@end ifclear
+
+@node Command Line Editing
+@chapter Command Line Editing
+
+This chapter describes the basic features of the @sc{gnu}
+command line editing interface.
+@ifset BashFeatures
+Command line editing is provided by the Readline library, which is
+used by several different programs, including Bash.
+@end ifset
+
+@menu
+* Introduction and Notation::  Notation used in this text.
+* Readline Interaction::       The minimum set of commands for editing a line.
+* Readline Init File::         Customizing Readline from a user's view.
+* Bindable Readline Commands:: A description of most of the Readline commands
+                               available for binding
+* Readline vi Mode::           A short description of how to make Readline
+                               behave like the vi editor.
+@ifset BashFeatures
+* Programmable Completion::    How to specify the possible completions for
+                               a specific command.
+* Programmable Completion Builtins::   Builtin commands to specify how to
+                               complete arguments for a particular command.
+@end ifset
+@end menu
+
+@node Introduction and Notation
+@section Introduction to Line Editing
+
+The following paragraphs describe the notation used to represent
+keystrokes.
+
+The text @kbd{C-k} is read as `Control-K' and describes the character
+produced when the @key{k} key is pressed while the Control key
+is depressed.
+
+The text @kbd{M-k} is read as `Meta-K' and describes the character
+produced when the Meta key (if you have one) is depressed, and the @key{k}
+key is pressed.
+The Meta key is labeled @key{ALT} on many keyboards.
+On keyboards with two keys labeled @key{ALT} (usually to either side of
+the space bar), the @key{ALT} on the left side is generally set to
+work as a Meta key.
+The @key{ALT} key on the right may also be configured to work as a
+Meta key or may be configured as some other modifier, such as a
+Compose key for typing accented characters.
+
+If you do not have a Meta or @key{ALT} key, or another key working as
+a Meta key, the identical keystroke can be generated by typing @key{ESC}
+@emph{first}, and then typing @key{k}.
+Either process is known as @dfn{metafying} the @key{k} key.
+
+The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the
+character produced by @dfn{metafying} @kbd{C-k}.
+
+In addition, several keys have their own names.  Specifically,
+@key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all
+stand for themselves when seen in this text, or in an init file
+(@pxref{Readline Init File}).
+If your keyboard lacks a @key{LFD} key, typing @key{C-j} will
+produce the desired character.
+The @key{RET} key may be labeled @key{Return} or @key{Enter} on
+some keyboards.
+
+@node Readline Interaction
+@section Readline Interaction
+@cindex interaction, readline
+
+Often during an interactive session you type in a long line of text,
+only to notice that the first word on the line is misspelled.  The
+Readline library gives you a set of commands for manipulating the text
+as you type it in, allowing you to just fix your typo, and not forcing
+you to retype the majority of the line.  Using these editing commands,
+you move the cursor to the place that needs correction, and delete or
+insert the text of the corrections.  Then, when you are satisfied with
+the line, you simply press @key{RET}.  You do not have to be at the
+end of the line to press @key{RET}; the entire line is accepted
+regardless of the location of the cursor within the line.
+
+@menu
+* Readline Bare Essentials::   The least you need to know about Readline.
+* Readline Movement Commands:: Moving about the input line.
+* Readline Killing Commands::  How to delete text, and how to get it back!
+* Readline Arguments::         Giving numeric arguments to commands.
+* Searching::                  Searching through previous lines.
+@end menu
+
+@node Readline Bare Essentials
+@subsection Readline Bare Essentials
+@cindex notation, readline
+@cindex command editing
+@cindex editing command lines
+
+In order to enter characters into the line, simply type them.  The typed
+character appears where the cursor was, and then the cursor moves one
+space to the right.  If you mistype a character, you can use your
+erase character to back up and delete the mistyped character.
+
+Sometimes you may mistype a character, and
+not notice the error until you have typed several other characters.  In
+that case, you can type @kbd{C-b} to move the cursor to the left, and then
+correct your mistake.  Afterwards, you can move the cursor to the right
+with @kbd{C-f}.
+
+When you add text in the middle of a line, you will notice that characters
+to the right of the cursor are `pushed over' to make room for the text
+that you have inserted.  Likewise, when you delete text behind the cursor,
+characters to the right of the cursor are `pulled back' to fill in the
+blank space created by the removal of the text.  A list of the bare
+essentials for editing the text of an input line follows.
+
+@table @asis
+@item @kbd{C-b}
+Move back one character.
+@item @kbd{C-f}
+Move forward one character.
+@item @key{DEL} or @key{Backspace}
+Delete the character to the left of the cursor.
+@item @kbd{C-d}
+Delete the character underneath the cursor.
+@item @w{Printing characters}
+Insert the character into the line at the cursor.
+@item @kbd{C-_} or @kbd{C-x C-u}
+Undo the last editing command.  You can undo all the way back to an
+empty line.
+@end table
+
+@noindent
+(Depending on your configuration, the @key{Backspace} key be set to
+delete the character to the left of the cursor and the @key{DEL} key set
+to delete the character underneath the cursor, like @kbd{C-d}, rather
+than the character to the left of the cursor.)
+
+@node Readline Movement Commands
+@subsection Readline Movement Commands
+
+
+The above table describes the most basic keystrokes that you need
+in order to do editing of the input line.  For your convenience, many
+other commands have been added in addition to @kbd{C-b}, @kbd{C-f},
+@kbd{C-d}, and @key{DEL}.  Here are some commands for moving more rapidly
+about the line.
+
+@table @kbd
+@item C-a
+Move to the start of the line.
+@item C-e
+Move to the end of the line.
+@item M-f
+Move forward a word, where a word is composed of letters and digits.
+@item M-b
+Move backward a word.
+@item C-l
+Clear the screen, reprinting the current line at the top.
+@end table
+
+Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves
+forward a word.  It is a loose convention that control keystrokes
+operate on characters while meta keystrokes operate on words.
+
+@node Readline Killing Commands
+@subsection Readline Killing Commands
+
+@cindex killing text
+@cindex yanking text
+
+@dfn{Killing} text means to delete the text from the line, but to save
+it away for later use, usually by @dfn{yanking} (re-inserting)
+it back into the line.
+(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
+
+If the description for a command says that it `kills' text, then you can
+be sure that you can get the text back in a different (or the same)
+place later.
+
+When you use a kill command, the text is saved in a @dfn{kill-ring}.
+Any number of consecutive kills save all of the killed text together, so
+that when you yank it back, you get it all.  The kill
+ring is not line specific; the text that you killed on a previously
+typed line is available to be yanked back later, when you are typing
+another line.
+@cindex kill ring
+
+Here is the list of commands for killing text.
+
+@table @kbd
+@item C-k
+Kill the text from the current cursor position to the end of the line.
+
+@item M-d
+Kill from the cursor to the end of the current word, or, if between
+words, to the end of the next word.
+Word boundaries are the same as those used by @kbd{M-f}.
+
+@item M-@key{DEL}
+Kill from the cursor the start of the current word, or, if between
+words, to the start of the previous word.
+Word boundaries are the same as those used by @kbd{M-b}.
+
+@item C-w
+Kill from the cursor to the previous whitespace.  This is different than
+@kbd{M-@key{DEL}} because the word boundaries differ.
+
+@end table
+
+Here is how to @dfn{yank} the text back into the line.  Yanking
+means to copy the most-recently-killed text from the kill buffer.
+
+@table @kbd
+@item C-y
+Yank the most recently killed text back into the buffer at the cursor.
+
+@item M-y
+Rotate the kill-ring, and yank the new top.  You can only do this if
+the prior command is @kbd{C-y} or @kbd{M-y}.
+@end table
+
+@node Readline Arguments
+@subsection Readline Arguments
+
+You can pass numeric arguments to Readline commands.  Sometimes the
+argument acts as a repeat count, other times it is the @i{sign} of the
+argument that is significant.  If you pass a negative argument to a
+command which normally acts in a forward direction, that command will
+act in a backward direction.  For example, to kill text back to the
+start of the line, you might type @samp{M-- C-k}.
+
+The general way to pass numeric arguments to a command is to type meta
+digits before the command.  If the first `digit' typed is a minus
+sign (@samp{-}), then the sign of the argument will be negative.  Once
+you have typed one meta digit to get the argument started, you can type
+the remainder of the digits, and then the command.  For example, to give
+the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d},
+which will delete the next ten characters on the input line.
+
+@node Searching
+@subsection Searching for Commands in the History
+
+Readline provides commands for searching through the command history
+@ifset BashFeatures
+(@pxref{Bash History Facilities})
+@end ifset
+for lines containing a specified string.
+There are two search modes:  @dfn{incremental} and @dfn{non-incremental}.
+
+Incremental searches begin before the user has finished typing the
+search string.
+As each character of the search string is typed, Readline displays
+the next entry from the history matching the string typed so far.
+An incremental search requires only as many characters as needed to
+find the desired history entry.
+To search backward in the history for a particular string, type
+@kbd{C-r}.  Typing @kbd{C-s} searches forward through the history.
+The characters present in the value of the @code{isearch-terminators} variable
+are used to terminate an incremental search.
+If that variable has not been assigned a value, the @key{ESC} and
+@kbd{C-J} characters will terminate an incremental search.
+@kbd{C-g} will abort an incremental search and restore the original line.
+When the search is terminated, the history entry containing the
+search string becomes the current line.
+
+To find other matching entries in the history list, type @kbd{C-r} or
+@kbd{C-s} as appropriate.
+This will search backward or forward in the history for the next
+entry matching the search string typed so far.
+Any other key sequence bound to a Readline command will terminate
+the search and execute that command.
+For instance, a @key{RET} will terminate the search and accept
+the line, thereby executing the command from the history list.
+A movement command will terminate the search, make the last line found
+the current line, and begin editing.
+
+Readline remembers the last incremental search string.  If two
+@kbd{C-r}s are typed without any intervening characters defining a new
+search string, any remembered search string is used.
+
+Non-incremental searches read the entire search string before starting
+to search for matching history lines.  The search string may be
+typed by the user or be part of the contents of the current line.
+
+@node Readline Init File
+@section Readline Init File
+@cindex initialization file, readline
+
+Although the Readline library comes with a set of Emacs-like
+keybindings installed by default, it is possible to use a different set
+of keybindings.
+Any user can customize programs that use Readline by putting
+commands in an @dfn{inputrc} file, conventionally in his home directory.
+The name of this
+@ifset BashFeatures
+file is taken from the value of the shell variable @env{INPUTRC}.  If
+@end ifset
+@ifclear BashFeatures
+file is taken from the value of the environment variable @env{INPUTRC}.  If
+@end ifclear
+that variable is unset, the default is @file{~/.inputrc}.
+
+When a program which uses the Readline library starts up, the
+init file is read, and the key bindings are set.
+
+In addition, the @code{C-x C-r} command re-reads this init file, thus
+incorporating any changes that you might have made to it.
+
+@menu
+* Readline Init File Syntax::  Syntax for the commands in the inputrc file.
+
+* Conditional Init Constructs::        Conditional key bindings in the inputrc file.
+
+* Sample Init File::           An example inputrc file.
+@end menu
+
+@node Readline Init File Syntax
+@subsection Readline Init File Syntax
+
+There are only a few basic constructs allowed in the
+Readline init file.  Blank lines are ignored.
+Lines beginning with a @samp{#} are comments.
+Lines beginning with a @samp{$} indicate conditional
+constructs (@pxref{Conditional Init Constructs}).  Other lines
+denote variable settings and key bindings.
+
+@table @asis
+@item Variable Settings
+You can modify the run-time behavior of Readline by
+altering the values of variables in Readline
+using the @code{set} command within the init file.
+The syntax is simple:
+
+@example
+set @var{variable} @var{value}
+@end example
+
+@noindent
+Here, for example, is how to
+change from the default Emacs-like key binding to use
+@code{vi} line editing commands:
+
+@example
+set editing-mode vi
+@end example
+
+Variable names and values, where appropriate, are recognized without regard
+to case. 
+
+@ifset BashFeatures
+The @w{@code{bind -V}} command lists the current Readline variable names
+and values.  @xref{Bash Builtins}.
+@end ifset
+
+A great deal of run-time behavior is changeable with the following
+variables.
+
+@cindex variables, readline
+@table @code
+
+@item bell-style
+@vindex bell-style
+Controls what happens when Readline wants to ring the terminal bell.
+If set to @samp{none}, Readline never rings the bell.  If set to
+@samp{visible}, Readline uses a visible bell if one is available.
+If set to @samp{audible} (the default), Readline attempts to ring
+the terminal's bell.
+
+@item comment-begin
+@vindex comment-begin
+The string to insert at the beginning of the line when the
+@code{insert-comment} command is executed.  The default value
+is @code{"#"}.
+
+@item completion-ignore-case
+If set to @samp{on}, Readline performs filename matching and completion
+in a case-insensitive fashion.
+The default value is @samp{off}.
+
+@item completion-query-items
+@vindex completion-query-items
+The number of possible completions that determines when the user is
+asked whether the list of possibilities should be displayed.
+If the number of possible completions is greater than this value,
+Readline will ask the user whether or not he wishes to view
+them; otherwise, they are simply listed.
+This variable must be set to an integer value greater than or equal to 0.
+The default limit is @code{100}.
+
+@item convert-meta
+@vindex convert-meta
+If set to @samp{on}, Readline will convert characters with the
+eighth bit set to an @sc{ascii} key sequence by stripping the eighth
+bit and prefixing an @key{ESC} character, converting them to a
+meta-prefixed key sequence.  The default value is @samp{on}.
+
+@item disable-completion
+@vindex disable-completion
+If set to @samp{On}, Readline will inhibit word completion.
+Completion  characters will be inserted into the line as if they had
+been mapped to @code{self-insert}.  The default is @samp{off}.
+
+@item editing-mode
+@vindex editing-mode
+The @code{editing-mode} variable controls which default set of
+key bindings is used.  By default, Readline starts up in Emacs editing
+mode, where the keystrokes are most similar to Emacs.  This variable can be
+set to either @samp{emacs} or @samp{vi}.
+
+@item enable-keypad
+@vindex enable-keypad
+When set to @samp{on}, Readline will try to enable the application
+keypad when it is called.  Some systems need this to enable the
+arrow keys.  The default is @samp{off}.
+
+@item expand-tilde
+@vindex expand-tilde
+If set to @samp{on}, tilde expansion is performed when Readline
+attempts word completion.  The default is @samp{off}.
+
+@vindex history-preserve-point
+If set to @samp{on}, the history code attempts to place point at the
+same location on each history line retrieved with @code{previous-history}
+or @code{next-history}.
+
+@item horizontal-scroll-mode
+@vindex horizontal-scroll-mode
+This variable can be set to either @samp{on} or @samp{off}.  Setting it
+to @samp{on} means that the text of the lines being edited will scroll
+horizontally on a single screen line when they are longer than the width
+of the screen, instead of wrapping onto a new screen line.  By default,
+this variable is set to @samp{off}.
+
+@item input-meta
+@vindex input-meta
+@vindex meta-flag
+If set to @samp{on}, Readline will enable eight-bit input (it
+will not clear the eighth bit in the characters it reads),
+regardless of what the terminal claims it can support.  The
+default value is @samp{off}.  The name @code{meta-flag} is a
+synonym for this variable.
+
+@item isearch-terminators
+@vindex isearch-terminators
+The string of characters that should terminate an incremental search without
+subsequently executing the character as a command (@pxref{Searching}).
+If this variable has not been given a value, the characters @key{ESC} and
+@kbd{C-J} will terminate an incremental search.
+
+@item keymap
+@vindex keymap
+Sets Readline's idea of the current keymap for key binding commands.
+Acceptable @code{keymap} names are
+@code{emacs},
+@code{emacs-standard},
+@code{emacs-meta},
+@code{emacs-ctlx},
+@code{vi},
+@code{vi-move},
+@code{vi-command}, and
+@code{vi-insert}.
+@code{vi} is equivalent to @code{vi-command}; @code{emacs} is
+equivalent to @code{emacs-standard}.  The default value is @code{emacs}.
+The value of the @code{editing-mode} variable also affects the
+default keymap.
+
+@item mark-directories
+If set to @samp{on}, completed directory names have a slash
+appended.  The default is @samp{on}.
+
+@item mark-modified-lines
+@vindex mark-modified-lines
+This variable, when set to @samp{on}, causes Readline to display an
+asterisk (@samp{*}) at the start of history lines which have been modified.
+This variable is @samp{off} by default.
+
+@item mark-symlinked-directories
+@vindex mark-symlinked-directories
+If set to @samp{on}, completed names which are symbolic links
+to directories have a slash appended (subject to the value of
+@code{mark-directories}).
+The default is @samp{off}.
+
+@item match-hidden-files
+@vindex match-hidden-files
+This variable, when set to @samp{on}, causes Readline to match files whose
+names begin with a @samp{.} (hidden files) when performing filename
+completion, unless the leading @samp{.} is
+supplied by the user in the filename to be completed.
+This variable is @samp{on} by default.
+
+@item output-meta
+@vindex output-meta
+If set to @samp{on}, Readline will display characters with the
+eighth bit set directly rather than as a meta-prefixed escape
+sequence.  The default is @samp{off}.
+
+@item page-completions
+@vindex page-completions
+If set to @samp{on}, Readline uses an internal @code{more}-like pager
+to display a screenful of possible completions at a time.
+This variable is @samp{on} by default.
+
+@item print-completions-horizontally
+If set to @samp{on}, Readline will display completions with matches
+sorted horizontally in alphabetical order, rather than down the screen.
+The default is @samp{off}.
+
+@item show-all-if-ambiguous
+@vindex show-all-if-ambiguous
+This alters the default behavior of the completion functions.  If
+set to @samp{on}, 
+words which have more than one possible completion cause the
+matches to be listed immediately instead of ringing the bell.
+The default value is @samp{off}.
+
+@item show-all-if-unmodified
+@vindex show-all-if-unmodified
+This alters the default behavior of the completion functions in
+a fashion similar to @var{show-all-if-ambiguous}.
+If set to @samp{on}, 
+words which have more than one possible completion without any
+possible partial completion (the possible completions don't share
+a common prefix) cause the matches to be listed immediately instead
+of ringing the bell.
+The default value is @samp{off}.
+
+@item visible-stats
+@vindex visible-stats
+If set to @samp{on}, a character denoting a file's type
+is appended to the filename when listing possible
+completions.  The default is @samp{off}.
+
+@end table
+
+@item Key Bindings
+The syntax for controlling key bindings in the init file is
+simple.  First you need to find the name of the command that you
+want to change.  The following sections contain tables of the command
+name, the default keybinding, if any, and a short description of what
+the command does.
+
+Once you know the name of the command, simply place on a line
+in the init file the name of the key
+you wish to bind the command to, a colon, and then the name of the
+command.  The name of the key
+can be expressed in different ways, depending on what you find most
+comfortable.
+
+In addition to command names, readline allows keys to be bound
+to a string that is inserted when the key is pressed (a @var{macro}).
+
+@ifset BashFeatures
+The @w{@code{bind -p}} command displays Readline function names and
+bindings in a format that can put directly into an initialization file.
+@xref{Bash Builtins}.
+@end ifset
+
+@table @asis
+@item @w{@var{keyname}: @var{function-name} or @var{macro}}
+@var{keyname} is the name of a key spelled out in English.  For example:
+@example
+Control-u: universal-argument
+Meta-Rubout: backward-kill-word
+Control-o: "> output"
+@end example
+
+In the above example, @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
+expressed on the right hand side (that is, to insert the text
+@samp{> output} into the line).
+
+A number of symbolic character names are recognized while
+processing this key binding syntax:
+@var{DEL},
+@var{ESC},
+@var{ESCAPE},
+@var{LFD},
+@var{NEWLINE},
+@var{RET},
+@var{RETURN},
+@var{RUBOUT},
+@var{SPACE},
+@var{SPC},
+and
+@var{TAB}.
+
+@item @w{"@var{keyseq}": @var{function-name} or @var{macro}}
+@var{keyseq} differs from @var{keyname} above in that strings
+denoting an entire key sequence can be specified, by placing
+the key sequence in double quotes.  Some @sc{gnu} Emacs style key
+escapes can be used, as in the following example, but the
+special character names are not recognized.
+
+@example
+"\C-u": universal-argument
+"\C-x\C-r": re-read-init-file
+"\e[11~": "Function Key 1"
+@end example
+
+In the above example, @kbd{C-u} is again bound to the function
+@code{universal-argument} (just as it was in the first example),
+@samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file},
+and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert
+the text @samp{Function Key 1}.
+
+@end table
+
+The following @sc{gnu} Emacs style escape sequences are available when
+specifying key sequences:
+
+@table @code
+@item @kbd{\C-}
+control prefix
+@item @kbd{\M-}
+meta prefix
+@item @kbd{\e}
+an escape character
+@item @kbd{\\}
+backslash
+@item @kbd{\"}
+@key{"}, a double quotation mark
+@item @kbd{\'}
+@key{'}, a single quote or apostrophe
+@end table
+
+In addition to the @sc{gnu} Emacs style escape sequences, a second
+set of backslash escapes is available:
+
+@table @code
+@item \a
+alert (bell)
+@item \b
+backspace
+@item \d
+delete
+@item \f
+form feed
+@item \n
+newline
+@item \r
+carriage return
+@item \t
+horizontal tab
+@item \v
+vertical tab
+@item \@var{nnn}
+the eight-bit character whose value is the octal value @var{nnn}
+(one to three digits)
+@item \x@var{HH}
+the eight-bit character whose value is the hexadecimal value @var{HH}
+(one or two hex digits)
+@end table
+
+When entering the text of a macro, single or double quotes must
+be used to indicate a macro definition.
+Unquoted text is assumed to be a function name.
+In the macro body, the backslash escapes described above are expanded.
+Backslash will quote any other character in the macro text,
+including @samp{"} and @samp{'}.
+For example, the following binding will make @samp{@kbd{C-x} \}
+insert a single @samp{\} into the line:
+@example
+"\C-x\\": "\\"
+@end example
+
+@end table
+
+@node Conditional Init Constructs
+@subsection Conditional Init Constructs
+
+Readline implements a facility similar in spirit to the conditional
+compilation features of the C preprocessor which allows key
+bindings and variable settings to be performed as the result
+of tests.  There are four parser directives used.
+
+@table @code
+@item $if
+The @code{$if} construct allows bindings to be made based on the
+editing mode, the terminal being used, or the application using
+Readline.  The text of the test extends to the end of the line;
+no characters are required to isolate it.
+
+@table @code
+@item mode
+The @code{mode=} form of the @code{$if} directive is used to test
+whether Readline is in @code{emacs} or @code{vi} mode.
+This may be used in conjunction
+with the @samp{set keymap} command, for instance, to set bindings in
+the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if
+Readline is starting out in @code{emacs} mode.
+
+@item term
+The @code{term=} form may be used to include terminal-specific
+key bindings, perhaps to bind the key sequences output by the
+terminal's function keys.  The word on the right side of the
+@samp{=} is tested against both the full name of the terminal and
+the portion of the terminal name before the first @samp{-}.  This
+allows @code{sun} to match both @code{sun} and @code{sun-cmd},
+for instance.
+
+@item application
+The @var{application} construct is used to include
+application-specific settings.  Each program using the Readline
+library sets the @var{application name}, and you can test for
+a particular value. 
+This could be used to bind key sequences to functions useful for
+a specific program.  For instance, the following command adds a
+key sequence that quotes the current or previous word in Bash:
+@example
+$if Bash
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+$endif
+@end example
+@end table
+
+@item $endif
+This command, as seen in the previous example, terminates an
+@code{$if} command.
+
+@item $else
+Commands in this branch of the @code{$if} directive are executed if
+the test fails.
+
+@item $include
+This directive takes a single filename as an argument and reads commands
+and bindings from that file.
+For example, the following directive reads from @file{/etc/inputrc}:
+@example
+$include /etc/inputrc
+@end example
+@end table
+
+@node Sample Init File
+@subsection Sample Init File
+
+Here is an example of an @var{inputrc} file.  This illustrates key
+binding, variable assignment, and conditional syntax.
+
+@example
+@page
+# This file controls the behaviour of line input editing for
+# programs that use the GNU Readline library.  Existing
+# programs include FTP, Bash, and GDB.
+#
+# You can re-read the inputrc file with C-x C-r.
+# Lines beginning with '#' are comments.
+#
+# First, include any systemwide bindings and variable
+# assignments from /etc/Inputrc
+$include /etc/Inputrc
+
+#
+# Set various bindings for emacs mode.
+
+set editing-mode emacs 
+
+$if mode=emacs
+
+Meta-Control-h:        backward-kill-word      Text after the function name is ignored
+
+#
+# Arrow keys in keypad mode
+#
+#"\M-OD":        backward-char
+#"\M-OC":        forward-char
+#"\M-OA":        previous-history
+#"\M-OB":        next-history
+#
+# Arrow keys in ANSI mode
+#
+"\M-[D":        backward-char
+"\M-[C":        forward-char
+"\M-[A":        previous-history
+"\M-[B":        next-history
+#
+# Arrow keys in 8 bit keypad mode
+#
+#"\M-\C-OD":       backward-char
+#"\M-\C-OC":       forward-char
+#"\M-\C-OA":       previous-history
+#"\M-\C-OB":       next-history
+#
+# Arrow keys in 8 bit ANSI mode
+#
+#"\M-\C-[D":       backward-char
+#"\M-\C-[C":       forward-char
+#"\M-\C-[A":       previous-history
+#"\M-\C-[B":       next-history
+
+C-q: quoted-insert
+
+$endif
+
+# An old-style binding.  This happens to be the default.
+TAB: complete
+
+# Macros that are convenient for shell interaction
+$if Bash
+# edit the path
+"\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f"
+# prepare to type a quoted word --
+# insert open and close double quotes
+# and move to just after the open quote
+"\C-x\"": "\"\"\C-b"
+# insert a backslash (testing backslash escapes
+# in sequences and macros)
+"\C-x\\": "\\"
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+# Add a binding to refresh the line, which is unbound
+"\C-xr": redraw-current-line
+# Edit variable on current line.
+"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
+$endif
+
+# use a visible bell if one is available
+set bell-style visible
+
+# don't strip characters to 7 bits when reading
+set input-meta on
+
+# allow iso-latin1 characters to be inserted rather
+# than converted to prefix-meta sequences
+set convert-meta off
+
+# display characters with the eighth bit set directly
+# rather than as meta-prefixed characters
+set output-meta on
+
+# if there are more than 150 possible completions for
+# a word, ask the user if he wants to see all of them
+set completion-query-items 150
+
+# For FTP
+$if Ftp
+"\C-xg": "get \M-?"
+"\C-xt": "put \M-?"
+"\M-.": yank-last-arg
+$endif
+@end example
+
+@node Bindable Readline Commands
+@section Bindable Readline Commands
+
+@menu
+* Commands For Moving::                Moving about the line.
+* Commands For History::       Getting at previous lines.
+* Commands For Text::          Commands for changing text.
+* Commands For Killing::       Commands for killing and yanking.
+* Numeric Arguments::          Specifying numeric arguments, repeat counts.
+* Commands For Completion::    Getting Readline to do the typing for you.
+* Keyboard Macros::            Saving and re-executing typed characters
+* Miscellaneous Commands::     Other miscellaneous commands.
+@end menu
+
+This section describes Readline commands that may be bound to key
+sequences.
+@ifset BashFeatures
+You can list your key bindings by executing
+@w{@code{bind -P}} or, for a more terse format, suitable for an
+@var{inputrc} file, @w{@code{bind -p}}.  (@xref{Bash Builtins}.)
+@end ifset
+Command names without an accompanying key sequence are unbound by default.
+
+In the following descriptions, @dfn{point} refers to the current cursor
+position, and @dfn{mark} refers to a cursor position saved by the
+@code{set-mark} command.
+The text between the point and mark is referred to as the @dfn{region}.
+
+@node Commands For Moving
+@subsection Commands For Moving
+@ftable @code
+@item beginning-of-line (C-a)
+Move to the start of the current line.
+
+@item end-of-line (C-e)
+Move to the end of the line.
+
+@item forward-char (C-f)
+Move forward a character.
+
+@item backward-char (C-b)
+Move back a character.
+
+@item forward-word (M-f)
+Move forward to the end of the next word.  Words are composed of
+letters and digits.
+
+@item backward-word (M-b)
+Move back to the start of the current or previous word.  Words are
+composed of letters and digits.
+
+@item clear-screen (C-l)
+Clear the screen and redraw the current line,
+leaving the current line at the top of the screen.
+
+@item redraw-current-line ()
+Refresh the current line.  By default, this is unbound.
+
+@end ftable
+
+@node Commands For History
+@subsection Commands For Manipulating The History
+
+@ftable @code
+@item accept-line (Newline or Return)
+@ifset BashFeatures
+Accept the line regardless of where the cursor is.
+If this line is
+non-empty, add it to the history list according to the setting of
+the @env{HISTCONTROL} and @env{HISTIGNORE} variables.
+If this line is a modified history line, then restore the history line
+to its original state.
+@end ifset
+@ifclear BashFeatures
+Accept the line regardless of where the cursor is.
+If this line is
+non-empty, it may be added to the history list for future recall with
+@code{add_history()}.
+If this line is a modified history line, the history line is restored
+to its original state.
+@end ifclear
+
+@item previous-history (C-p)
+Move `back' through the history list, fetching the previous command.
+
+@item next-history (C-n)
+Move `forward' through the history list, fetching the next command.
+
+@item beginning-of-history (M-<)
+Move to the first line in the history.
+
+@item end-of-history (M->)
+Move to the end of the input history, i.e., the line currently
+being entered.
+
+@item reverse-search-history (C-r)
+Search backward starting at the current line and moving `up' through
+the history as necessary.  This is an incremental search.
+
+@item forward-search-history (C-s)
+Search forward starting at the current line and moving `down' through
+the the history as necessary.  This is an incremental search.
+
+@item non-incremental-reverse-search-history (M-p)
+Search backward starting at the current line and moving `up'
+through the history as necessary using a non-incremental search
+for a string supplied by the user.
+
+@item non-incremental-forward-search-history (M-n)
+Search forward starting at the current line and moving `down'
+through the the history as necessary using a non-incremental search
+for a string supplied by the user.
+
+@item history-search-forward ()
+Search forward through the history for the string of characters
+between the start of the current line and the point.
+This is a non-incremental search.
+By default, this command is unbound.
+
+@item history-search-backward ()
+Search backward through the history for the string of characters
+between the start of the current line and the point.  This
+is a non-incremental search.  By default, this command is unbound.
+
+@item yank-nth-arg (M-C-y)
+Insert the first argument to the previous command (usually
+the second word on the previous line) at point.
+With an argument @var{n},
+insert the @var{n}th word from the previous command (the words
+in the previous command begin with word 0).  A negative argument
+inserts the @var{n}th word from the end of the previous command.
+
+@item yank-last-arg (M-. or M-_)
+Insert last argument to the previous command (the last word of the
+previous history entry).  With an
+argument, behave exactly like @code{yank-nth-arg}.
+Successive calls to @code{yank-last-arg} move back through the history
+list, inserting the last argument of each line in turn.
+
+@end ftable
+
+@node Commands For Text
+@subsection Commands For Changing Text
+
+@ftable @code
+@item delete-char (C-d)
+Delete the character at point.  If point is at the
+beginning of the line, there are no characters in the line, and
+the last character typed was not bound to @code{delete-char}, then
+return @sc{eof}.
+
+@item backward-delete-char (Rubout)
+Delete the character behind the cursor.  A numeric argument means
+to kill the characters instead of deleting them.
+
+@item forward-backward-delete-char ()
+Delete the character under the cursor, unless the cursor is at the
+end of the line, in which case the character behind the cursor is
+deleted.  By default, this is not bound to a key.
+
+@item quoted-insert (C-q or C-v)
+Add the next character typed to the line verbatim.  This is
+how to insert key sequences like @kbd{C-q}, for example.
+
+@ifclear BashFeatures
+@item tab-insert (M-@key{TAB})
+Insert a tab character.
+@end ifclear
+
+@item self-insert (a, b, A, 1, !, @dots{})
+Insert yourself.
+
+@item transpose-chars (C-t)
+Drag the character before the cursor forward over
+the character at the cursor, moving the
+cursor forward as well.  If the insertion point
+is at the end of the line, then this
+transposes the last two characters of the line.
+Negative arguments have no effect.
+
+@item transpose-words (M-t)
+Drag the word before point past the word after point,
+moving point past that word as well.
+If the insertion point is at the end of the line, this transposes
+the last two words on the line.
+
+@item upcase-word (M-u)
+Uppercase the current (or following) word.  With a negative argument,
+uppercase the previous word, but do not move the cursor.
+
+@item downcase-word (M-l)
+Lowercase the current (or following) word.  With a negative argument,
+lowercase the previous word, but do not move the cursor.
+
+@item capitalize-word (M-c)
+Capitalize the current (or following) word.  With a negative argument,
+capitalize the previous word, but do not move the cursor.
+
+@item overwrite-mode ()
+Toggle overwrite mode.  With an explicit positive numeric argument,
+switches to overwrite mode.  With an explicit non-positive numeric
+argument, switches to insert mode.  This command affects only
+@code{emacs} mode; @code{vi} mode does overwrite differently.
+Each call to @code{readline()} starts in insert mode.
+
+In overwrite mode, characters bound to @code{self-insert} replace
+the text at point rather than pushing the text to the right.
+Characters bound to @code{backward-delete-char} replace the character
+before point with a space.
+
+By default, this command is unbound.
+
+@end ftable
+
+@node Commands For Killing
+@subsection Killing And Yanking
+
+@ftable @code
+
+@item kill-line (C-k)
+Kill the text from point to the end of the line.
+
+@item backward-kill-line (C-x Rubout)
+Kill backward to the beginning of the line.
+
+@item unix-line-discard (C-u)
+Kill backward from the cursor to the beginning of the current line.
+
+@item kill-whole-line ()
+Kill all characters on the current line, no matter where point is.
+By default, this is unbound.
+
+@item kill-word (M-d)
+Kill from point to the end of the current word, or if between
+words, to the end of the next word.
+Word boundaries are the same as @code{forward-word}.
+
+@item backward-kill-word (M-@key{DEL})
+Kill the word behind point.
+Word boundaries are the same as @code{backward-word}.
+
+@item unix-word-rubout (C-w)
+Kill the word behind point, using white space as a word boundary.
+The killed text is saved on the kill-ring.
+
+@item unix-filename-rubout ()
+Kill the word behind point, using white space and the slash character
+as the word boundaries.
+The killed text is saved on the kill-ring.
+
+@item delete-horizontal-space ()
+Delete all spaces and tabs around point.  By default, this is unbound.
+
+@item kill-region ()
+Kill the text in the current region.
+By default, this command is unbound.
+
+@item copy-region-as-kill ()
+Copy the text in the region to the kill buffer, so it can be yanked
+right away.  By default, this command is unbound.
+
+@item copy-backward-word ()
+Copy the word before point to the kill buffer.
+The word boundaries are the same as @code{backward-word}.
+By default, this command is unbound.
+
+@item copy-forward-word ()
+Copy the word following point to the kill buffer.
+The word boundaries are the same as @code{forward-word}.
+By default, this command is unbound.
+
+@item yank (C-y)
+Yank the top of the kill ring into the buffer at point.
+
+@item yank-pop (M-y)
+Rotate the kill-ring, and yank the new top.  You can only do this if
+the prior command is @code{yank} or @code{yank-pop}.
+@end ftable
+
+@node Numeric Arguments
+@subsection Specifying Numeric Arguments
+@ftable @code
+
+@item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--})
+Add this digit to the argument already accumulating, or start a new
+argument.  @kbd{M--} starts a negative argument.
+
+@item universal-argument ()
+This is another way to specify an argument.
+If this command is followed by one or more digits, optionally with a
+leading minus sign, those digits define the argument.
+If the command is followed by digits, executing @code{universal-argument}
+again ends the numeric argument, but is otherwise ignored.
+As a special case, if this command is immediately followed by a
+character that is neither a digit or minus sign, the argument count
+for the next command is multiplied by four.
+The argument count is initially one, so executing this function the
+first time makes the argument count four, a second time makes the
+argument count sixteen, and so on.
+By default, this is not bound to a key.
+@end ftable
+
+@node Commands For Completion
+@subsection Letting Readline Type For You
+
+@ftable @code
+@item complete (@key{TAB})
+Attempt to perform completion on the text before point.
+The actual completion performed is application-specific.
+@ifset BashFeatures
+Bash attempts completion treating the text as a variable (if the
+text begins with @samp{$}), username (if the text begins with
+@samp{~}), hostname (if the text begins with @samp{@@}), or
+command (including aliases and functions) in turn.  If none 
+of these produces a match, filename completion is attempted.
+@end ifset
+@ifclear BashFeatures
+The default is filename completion.
+@end ifclear
+
+@item possible-completions (M-?)
+List the possible completions of the text before point.
+
+@item insert-completions (M-*)
+Insert all completions of the text before point that would have
+been generated by @code{possible-completions}.
+
+@item menu-complete ()
+Similar to @code{complete}, but replaces the word to be completed
+with a single match from the list of possible completions.
+Repeated execution of @code{menu-complete} steps through the list
+of possible completions, inserting each match in turn.
+At the end of the list of completions, the bell is rung
+(subject to the setting of @code{bell-style})
+and the original text is restored.
+An argument of @var{n} moves @var{n} positions forward in the list
+of matches; a negative argument may be used to move backward
+through the list.
+This command is intended to be bound to @key{TAB}, but is unbound
+by default.
+
+@item delete-char-or-list ()
+Deletes the character under the cursor if not at the beginning or
+end of the line (like @code{delete-char}).
+If at the end of the line, behaves identically to
+@code{possible-completions}.
+This command is unbound by default.
+
+@ifset BashFeatures
+@item complete-filename (M-/)
+Attempt filename completion on the text before point.
+
+@item possible-filename-completions (C-x /)
+List the possible completions of the text before point,
+treating it as a filename.
+
+@item complete-username (M-~)
+Attempt completion on the text before point, treating
+it as a username.
+
+@item possible-username-completions (C-x ~)
+List the possible completions of the text before point,
+treating it as a username.
+
+@item complete-variable (M-$)
+Attempt completion on the text before point, treating
+it as a shell variable.
+
+@item possible-variable-completions (C-x $)
+List the possible completions of the text before point,
+treating it as a shell variable.
+
+@item complete-hostname (M-@@)
+Attempt completion on the text before point, treating
+it as a hostname.
+
+@item possible-hostname-completions (C-x @@)
+List the possible completions of the text before point,
+treating it as a hostname.
+
+@item complete-command (M-!)
+Attempt completion on the text before point, treating
+it as a command name.  Command completion attempts to
+match the text against aliases, reserved words, shell
+functions, shell builtins, and finally executable filenames,
+in that order.
+
+@item possible-command-completions (C-x !)
+List the possible completions of the text before point,
+treating it as a command name.
+
+@item dynamic-complete-history (M-@key{TAB})
+Attempt completion on the text before point, comparing
+the text against lines from the history list for possible
+completion matches.
+
+@item complete-into-braces (M-@{)
+Perform filename completion and insert the list of possible completions
+enclosed within braces so the list is available to the shell
+(@pxref{Brace Expansion}).
+
+@end ifset
+@end ftable
+
+@node Keyboard Macros
+@subsection Keyboard Macros
+@ftable @code
+
+@item start-kbd-macro (C-x ()
+Begin saving the characters typed into the current keyboard macro.
+
+@item end-kbd-macro (C-x ))
+Stop saving the characters typed into the current keyboard macro
+and save the definition.
+
+@item call-last-kbd-macro (C-x e)
+Re-execute the last keyboard macro defined, by making the characters
+in the macro appear as if typed at the keyboard.
+
+@end ftable
+
+@node Miscellaneous Commands
+@subsection Some Miscellaneous Commands
+@ftable @code
+
+@item re-read-init-file (C-x C-r)
+Read in the contents of the @var{inputrc} file, and incorporate
+any bindings or variable assignments found there.
+
+@item abort (C-g)
+Abort the current editing command and
+ring the terminal's bell (subject to the setting of
+@code{bell-style}).
+
+@item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{})
+If the metafied character @var{x} is lowercase, run the command
+that is bound to the corresponding uppercase character.
+
+@item prefix-meta (@key{ESC})
+Metafy the next character typed.  This is for keyboards
+without a meta key.  Typing @samp{@key{ESC} f} is equivalent to typing
+@kbd{M-f}.
+
+@item undo (C-_ or C-x C-u)
+Incremental undo, separately remembered for each line.
+
+@item revert-line (M-r)
+Undo all changes made to this line.  This is like executing the @code{undo}
+command enough times to get back to the beginning.
+
+@ifset BashFeatures
+@item tilde-expand (M-&)
+@end ifset
+@ifclear BashFeatures
+@item tilde-expand (M-~)
+@end ifclear
+Perform tilde expansion on the current word.
+
+@item set-mark (C-@@)
+Set the mark to the point.  If a
+numeric argument is supplied, the mark is set to that position.
+
+@item exchange-point-and-mark (C-x C-x)
+Swap the point with the mark.  The current cursor position is set to
+the saved position, and the old cursor position is saved as the mark.
+
+@item character-search (C-])
+A character is read and point is moved to the next occurrence of that
+character.  A negative count searches for previous occurrences.
+
+@item character-search-backward (M-C-])
+A character is read and point is moved to the previous occurrence
+of that character.  A negative count searches for subsequent
+occurrences.
+
+@item insert-comment (M-#)
+Without a numeric argument, the value of the @code{comment-begin}
+variable is inserted at the beginning of the current line.
+If a numeric argument is supplied, this command acts as a toggle:  if
+the characters at the beginning of the line do not match the value
+of @code{comment-begin}, the value is inserted, otherwise
+the characters in @code{comment-begin} are deleted from the beginning of
+the line.
+In either case, the line is accepted as if a newline had been typed.
+@ifset BashFeatures
+The default value of @code{comment-begin} causes this command
+to make the current line a shell comment.
+If a numeric argument causes the comment character to be removed, the line
+will be executed by the shell.
+@end ifset
+
+@item dump-functions ()
+Print all of the functions and their key bindings to the
+Readline output stream.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an @var{inputrc} file.  This command is unbound by default.
+
+@item dump-variables ()
+Print all of the settable variables and their values to the
+Readline output stream.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an @var{inputrc} file.  This command is unbound by default.
+
+@item dump-macros ()
+Print all of the Readline key sequences bound to macros and the
+strings they output.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an @var{inputrc} file.  This command is unbound by default.
+
+@ifset BashFeatures
+@item glob-complete-word (M-g)
+The word before point is treated as a pattern for pathname expansion,
+with an asterisk implicitly appended.  This pattern is used to
+generate a list of matching file names for possible completions.
+
+@item glob-expand-word (C-x *)
+The word before point is treated as a pattern for pathname expansion,
+and the list of matching file names is inserted, replacing the word.
+If a numeric argument is supplied, a @samp{*} is appended before
+pathname expansion.
+
+@item glob-list-expansions (C-x g)
+The list of expansions that would have been generated by
+@code{glob-expand-word} is displayed, and the line is redrawn.
+If a numeric argument is supplied, a @samp{*} is appended before
+pathname expansion.
+
+@item display-shell-version (C-x C-v)
+Display version information about the current instance of Bash.
+
+@item shell-expand-line (M-C-e)
+Expand the line as the shell does.
+This performs alias and history expansion as well as all of the shell
+word expansions (@pxref{Shell Expansions}).
+
+@item history-expand-line (M-^)
+Perform history expansion on the current line.
+
+@item magic-space ()
+Perform history expansion on the current line and insert a space
+(@pxref{History Interaction}).
+
+@item alias-expand-line ()
+Perform alias expansion on the current line (@pxref{Aliases}).
+
+@item history-and-alias-expand-line ()
+Perform history and alias expansion on the current line.
+
+@item insert-last-argument (M-. or M-_)
+A synonym for @code{yank-last-arg}.
+
+@item operate-and-get-next (C-o)
+Accept the current line for execution and fetch the next line
+relative to the current line from the history for editing.  Any
+argument is ignored.
+
+@item edit-and-execute-command (C-xC-e)
+Invoke an editor on the current command line, and execute the result as shell
+commands.
+Bash attempts to invoke
+@code{$VISUAL}, @code{$EDITOR}, and @code{emacs}
+as the editor, in that order.
+
+@end ifset
+
+@ifclear BashFeatures
+@item emacs-editing-mode (C-e)
+When in @code{vi} command mode, this causes a switch to @code{emacs}
+editing mode.
+
+@item vi-editing-mode (M-C-j)
+When in @code{emacs} editing mode, this causes a switch to @code{vi}
+editing mode.
+
+@end ifclear
+
+@end ftable
+
+@node Readline vi Mode
+@section Readline vi Mode
+
+While the Readline library does not have a full set of @code{vi}
+editing functions, it does contain enough to allow simple editing
+of the line.  The Readline @code{vi} mode behaves as specified in
+the @sc{posix} 1003.2 standard.
+
+@ifset BashFeatures
+In order to switch interactively between @code{emacs} and @code{vi}
+editing modes, use the @samp{set -o emacs} and @samp{set -o vi}
+commands (@pxref{The Set Builtin}).
+@end ifset
+@ifclear BashFeatures
+In order to switch interactively between @code{emacs} and @code{vi}
+editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode
+when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode).
+@end ifclear
+The Readline default is @code{emacs} mode.
+
+When you enter a line in @code{vi} mode, you are already placed in
+`insertion' mode, as if you had typed an @samp{i}.  Pressing @key{ESC}
+switches you into `command' mode, where you can edit the text of the
+line with the standard @code{vi} movement keys, move to previous
+history lines with @samp{k} and subsequent lines with @samp{j}, and
+so forth.
+
+@ifset BashFeatures
+@node Programmable Completion
+@section Programmable Completion
+@cindex programmable completion
+
+When word completion is attempted for an argument to a command for
+which a completion specification (a @var{compspec}) has been defined
+using the @code{complete} builtin (@pxref{Programmable Completion Builtins}),
+the programmable completion facilities are invoked. 
+
+First, the command name is identified.
+If a compspec has been defined for that command, the
+compspec is used to generate the list of possible completions for the word.
+If the command word is a full pathname, a compspec for the full
+pathname is searched for first.
+If no compspec is found for the full pathname, an attempt is made to
+find a compspec for the portion following the final slash.
+
+Once a compspec has been found, it is used to generate the list of
+matching words.
+If a compspec is not found, the default Bash completion
+described above (@pxref{Commands For Completion}) is performed.
+
+First, the actions specified by the compspec are used.
+Only matches which are prefixed by the word being completed are
+returned.
+When the @option{-f} or @option{-d} option is used for filename or
+directory name completion, the shell variable @env{FIGNORE} is
+used to filter the matches.
+@xref{Bash Variables}, for a description of @env{FIGNORE}.
+
+Any completions specified by a filename expansion pattern to the
+@option{-G} option are generated next.
+The words generated by the pattern need not match the word being completed.
+The @env{GLOBIGNORE} shell variable is not used to filter the matches,
+but the @env{FIGNORE} shell variable is used.
+
+Next, the string specified as the argument to the @option{-W} option
+is considered.
+The string is first split using the characters in the @env{IFS}
+special variable as delimiters.
+Shell quoting is honored.
+Each word is then expanded using
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, and pathname expansion,
+as described above (@pxref{Shell Expansions}).
+The results are split using the rules described above
+(@pxref{Word Splitting}).
+The results of the expansion are prefix-matched against the word being
+completed, and the matching words become the possible completions.
+
+After these matches have been generated, any shell function or command
+specified with the @option{-F} and @option{-C} options is invoked.
+When the command or function is invoked, the @env{COMP_LINE} and
+@env{COMP_POINT} variables are assigned values as described above
+(@pxref{Bash Variables}).
+If a shell function is being invoked, the @env{COMP_WORDS} and
+@env{COMP_CWORD} variables are also set.
+When the function or command is invoked, the first argument is the
+name of the command whose arguments are being completed, the
+second argument is the word being completed, and the third argument
+is the word preceding the word being completed on the current command line.
+No filtering of the generated completions against the word being completed
+is performed; the function or command has complete freedom in generating
+the matches.
+
+Any function specified with @option{-F} is invoked first.
+The function may use any of the shell facilities, including the
+@code{compgen} builtin described below
+(@pxref{Programmable Completion Builtins}), to generate the matches.
+It must put the possible completions in the @env{COMPREPLY} array
+variable.
+
+Next, any command specified with the @option{-C} option is invoked
+in an environment equivalent to command substitution.
+It should print a list of completions, one per line, to
+the standard output.
+Backslash may be used to escape a newline, if necessary.
+
+After all of the possible completions are generated, any filter
+specified with the @option{-X} option is applied to the list.
+The filter is a pattern as used for pathname expansion; a @samp{&}
+in the pattern is replaced with the text of the word being completed.
+A literal @samp{&} may be escaped with a backslash; the backslash
+is removed before attempting a match.
+Any completion that matches the pattern will be removed from the list.
+A leading @samp{!} negates the pattern; in this case any completion
+not matching the pattern will be removed.
+
+Finally, any prefix and suffix specified with the @option{-P} and @option{-S}
+options are added to each member of the completion list, and the result is
+returned to the Readline completion code as the list of possible
+completions.
+
+If the previously-applied actions do not generate any matches, and the
+@option{-o dirnames} option was supplied to @code{complete} when the
+compspec was defined, directory name completion is attempted. 
+
+If the @option{-o plusdirs} option was supplied to @code{complete} when
+the compspec was defined, directory name completion is attempted and any
+matches are added to the results of the other actions.
+
+By default, if a compspec is found, whatever it generates is returned to
+the completion code as the full set of possible completions.
+The default Bash completions are not attempted, and the Readline default
+of filename completion is disabled.
+If the @option{-o bashdefault} option was supplied to @code{complete} when
+the compspec was defined, the default Bash completions are attempted
+if the compspec generates no matches.
+If the @option{-o default} option was supplied to @code{complete} when the
+compspec was defined, Readline's default completion will be performed
+if the compspec (and, if attempted, the default Bash completions)
+generate no matches.
+
+When a compspec indicates that directory name completion is desired,
+the programmable completion functions force Readline to append a slash
+to completed names which are symbolic links to directories, subject to
+the value of the @var{mark-directories} Readline variable, regardless
+of the setting of the @var{mark-symlinked-directories} Readline variable.
+
+@node Programmable Completion Builtins
+@section Programmable Completion Builtins
+@cindex completion builtins
+
+Two builtin commands are available to manipulate the programmable completion
+facilities.
+
+@table @code
+@item compgen
+@btindex compgen
+@example
+@code{compgen [@var{option}] [@var{word}]}
+@end example
+
+Generate possible completion matches for @var{word} according to
+the @var{option}s, which may be any option accepted by the
+@code{complete}
+builtin with the exception of @option{-p} and @option{-r}, and write
+the matches to the standard output.
+When using the @option{-F} or @option{-C} options, the various shell variables
+set by the programmable completion facilities, while available, will not
+have useful values.
+
+The matches will be generated in the same way as if the programmable
+completion code had generated them directly from a completion specification
+with the same flags.
+If @var{word} is specified, only those completions matching @var{word}
+will be displayed.
+
+The return value is true unless an invalid option is supplied, or no
+matches were generated.
+
+@item complete
+@btindex complete
+@example
+@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
+[-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}]
+[-C @var{command}] @var{name} [@var{name} @dots{}]}
+@code{complete -pr [@var{name} @dots{}]}
+@end example
+
+Specify how arguments to each @var{name} should be completed.
+If the @option{-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 @option{-r} option removes a completion specification for
+each @var{name}, or, if no @var{name}s are supplied, all
+completion specifications.
+
+The process of applying these completion specifications when word completion
+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
+(and, if necessary, the @option{-P} and @option{-S} options)
+should be quoted to protect them from expansion before the
+@code{complete} builtin is invoked.
+
+
+@table @code
+@item -o @var{comp-option}
+The @var{comp-option} controls several aspects of the compspec's behavior
+beyond the simple generation of completions.
+@var{comp-option} may be one of: 
+
+@table @code
+
+@item bashdefault
+Perform the rest of the default Bash completions if the compspec
+generates no matches.
+
+@item default
+Use Readline's default filename completion if the compspec generates
+no matches.
+
+@item dirnames
+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 or
+suppressing trailing spaces).  This option is intended to be used with
+shell functions specified with @option{-F}.
+
+@item nospace
+Tell Readline not to append a space (the default) to words completed at
+the end of the line.
+@end table
+
+@item -A @var{action}
+The @var{action} may be one of the following to generate a list of possible
+completions:
+
+@table @code
+@item alias
+Alias names.  May also be specified as @option{-a}.
+
+@item arrayvar
+Array variable names.
+
+@item binding
+Readline key binding names (@pxref{Bindable Readline Commands}).
+
+@item builtin
+Names of shell builtin commands.  May also be specified as @option{-b}.
+
+@item command
+Command names.  May also be specified as @option{-c}.
+
+@item directory
+Directory names.  May also be specified as @option{-d}.
+
+@item disabled
+Names of disabled shell builtins.
+
+@item enabled
+Names of enabled shell builtins.
+
+@item export
+Names of exported shell variables.  May also be specified as @option{-e}.
+
+@item file
+File names.  May also be specified as @option{-f}.
+
+@item function
+Names of shell functions.
+
+@item group
+Group names.  May also be specified as @option{-g}.
+
+@item helptopic
+Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}).
+
+@item hostname
+Hostnames, as taken from the file specified by the
+@env{HOSTFILE} shell variable (@pxref{Bash Variables}).
+
+@item job
+Job names, if job control is active.  May also be specified as @option{-j}.
+
+@item keyword
+Shell reserved words.  May also be specified as @option{-k}.
+
+@item running
+Names of running jobs, if job control is active.
+
+@item service
+Service names.  May also be specified as @option{-s}.
+
+@item setopt
+Valid arguments for the @option{-o} option to the @code{set} builtin
+(@pxref{The Set Builtin}).
+
+@item shopt
+Shell option names as accepted by the @code{shopt} builtin
+(@pxref{Bash Builtins}).
+
+@item signal
+Signal names.
+
+@item stopped
+Names of stopped jobs, if job control is active.
+
+@item user
+User names.  May also be specified as @option{-u}.
+
+@item variable
+Names of all shell variables.  May also be specified as @option{-v}.
+@end table
+
+@item -G @var{globpat}
+The filename expansion pattern @var{globpat} is expanded to generate
+the possible completions.
+
+@item -W @var{wordlist}
+The @var{wordlist} is split using the characters in the
+@env{IFS} special variable as delimiters, and each resultant word
+is expanded.
+The possible completions are the members of the resultant list which
+match the word being completed.
+
+@item -C @var{command}
+@var{command} is executed in a subshell environment, and its output is
+used as the possible completions.
+
+@item -F @var{function}
+The shell function @var{function} is executed in the current shell
+environment.
+When it finishes, the possible completions are retrieved from the value
+of the @env{COMPREPLY} array variable.
+
+@item -X @var{filterpat}
+@var{filterpat} is a pattern as used for filename expansion.
+It is applied to the list of possible completions generated by the
+preceding options and arguments, and each completion matching
+@var{filterpat} is removed from the list.
+A leading @samp{!} in @var{filterpat} negates the pattern; in this
+case, any completion not matching @var{filterpat} is removed.
+
+@item -P @var{prefix}
+@var{prefix} is added at the beginning of each possible completion
+after all other options have been applied.
+
+@item -S @var{suffix}
+@var{suffix} is appended to each possible completion
+after all other options have been applied.
+@end table
+
+The return value is true unless an invalid option is supplied, an option
+other than @option{-p} or @option{-r} is supplied without a @var{name}
+argument, an attempt is made to remove a completion specification for
+a @var{name} for which no specification exists, or
+an error occurs adding a completion specification.
+
+@end table
+@end ifset
index c375c1de548cc4556215c0e3a2744a88ad9dd128..17596b8b8a60da84134d19b04681da079a7c6a13 100644 (file)
@@ -86,7 +86,7 @@ CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \
           inet_aton.c netconn.c netopen.c strpbrk.c timeval.c makepath.c \
           pathcanon.c pathphys.c tmpfile.c stringlist.c stringvec.c spell.c \
           shquote.c strtrans.c strindex.c snprintf.c mailstat.c \
-          fmtulong.c fmtullong.c fmtumax.c shmatch.c \
+          fmtulong.c fmtullong.c fmtumax.c shmatch.c strnlen.c \
           strtoll.c strtoull.c strtoimax.c strtoumax.c memset.c strstr.c \
           mktime.c strftime.c xstrchr.c zcatfd.c 
 
@@ -95,7 +95,7 @@ HSOURCES =
 
 # The object files contained in $(LIBRARY_NAME)
 LIBOBJS = @LIBOBJS@
-OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o \
+OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.o \
          itos.o zread.o zwrite.o shtty.o shmatch.o \
          netconn.o netopen.o timeval.o makepath.o pathcanon.o \
          pathphys.o tmpfile.o stringlist.o stringvec.o spell.o shquote.o \
@@ -162,6 +162,7 @@ strftime.o: strftime.c
 strindex.o: strindex.c
 stringlist.o: stringlist.c
 stringvec.o: stringvec.c
+strnlen.o: strnlen.c
 strpbrk.o: strpbrk.c
 strtod.o: strtod.c
 strtoimax.o: strtoimax.c
@@ -218,6 +219,7 @@ strftime.o: ${BUILD_DIR}/config.h
 strindex.o: ${BUILD_DIR}/config.h
 stringlist.o: ${BUILD_DIR}/config.h
 stringvec.o: ${BUILD_DIR}/config.h
+strnlen.o: ${BUILD_DIR}/config.h
 strpbrk.o: ${BUILD_DIR}/config.h
 strtod.o: ${BUILD_DIR}/config.h
 strtoimax.o: ${BUILD_DIR}/config.h
@@ -372,6 +374,8 @@ stringvec.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
 stringvec.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
 stringvec.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
 
+strnlen.o: ${BASHINCDIR}/stdc.h
+
 strpbrk.o: ${BASHINCDIR}/stdc.h
 
 strtod.o: ${topdir}/bashansi.h
diff --git a/lib/sh/Makefile.in~ b/lib/sh/Makefile.in~
new file mode 100644 (file)
index 0000000..c375c1d
--- /dev/null
@@ -0,0 +1,451 @@
+#
+# Makefile for the Bash library
+#
+#
+# Copyright (C) 1998-2002 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+PACKAGE = @PACKAGE_NAME@
+VERSION = @PACKAGE_VERSION@
+
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+
+srcdir = @srcdir@
+VPATH = .:@srcdir@
+topdir = @top_srcdir@
+BUILD_DIR = @BUILD_DIR@
+
+LIBBUILD = ${BUILD_DIR}/lib
+
+BASHINCDIR = ${topdir}/include
+
+INTL_LIBSRC = ${topdir}/lib/intl
+INTL_BUILDDIR = ${LIBBUILD}/intl
+INTL_INC = @INTL_INC@
+LIBINTL_H = @LIBINTL_H@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+
+CC = @CC@
+RANLIB = @RANLIB@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+RM = rm -f
+CP = cp
+MV = mv
+
+SHELL = @MAKE_SHELL@
+
+CFLAGS = @CFLAGS@
+LOCAL_CFLAGS = @LOCAL_CFLAGS@ ${DEBUG}
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@ @LOCAL_LDFLAGS@
+
+PROFILE_FLAGS = @PROFILE_FLAGS@
+
+DEFS = @DEFS@
+LOCAL_DEFS = @LOCAL_DEFS@
+
+INCLUDES = -I. -I../.. -I$(topdir) -I$(topdir)/lib -I$(BASHINCDIR) -I$(srcdir) $(INTL_INC)
+
+CCFLAGS = ${PROFILE_FLAGS} ${INCLUDES} $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) \
+         $(CFLAGS) $(CPPFLAGS) 
+
+GCC_LINT_FLAGS = -Wall -Wshadow -Wpointer-arith -Wcast-qual \
+                -Wcast-align -Wstrict-prototypes -Wconversion \
+                -Wmissing-prototypes -Wtraditional -Wredundant-decls -pedantic
+
+.c.o:
+       $(CC) -c $(CCFLAGS) $<
+
+# The name of the library target.
+LIBRARY_NAME = libsh.a
+
+# The C code source files for this library.
+CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \
+          strcasecmp.c strerror.c strtod.c strtol.c strtoul.c \
+          vprint.c itos.c rename.c zread.c zwrite.c shtty.c \
+          inet_aton.c netconn.c netopen.c strpbrk.c timeval.c makepath.c \
+          pathcanon.c pathphys.c tmpfile.c stringlist.c stringvec.c spell.c \
+          shquote.c strtrans.c strindex.c snprintf.c mailstat.c \
+          fmtulong.c fmtullong.c fmtumax.c shmatch.c \
+          strtoll.c strtoull.c strtoimax.c strtoumax.c memset.c strstr.c \
+          mktime.c strftime.c xstrchr.c zcatfd.c 
+
+# The header files for this library.
+HSOURCES = 
+
+# The object files contained in $(LIBRARY_NAME)
+LIBOBJS = @LIBOBJS@
+OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o \
+         itos.o zread.o zwrite.o shtty.o shmatch.o \
+         netconn.o netopen.o timeval.o makepath.o pathcanon.o \
+         pathphys.o tmpfile.o stringlist.o stringvec.o spell.o shquote.o \
+         strtrans.o strindex.o snprintf.o mailstat.o fmtulong.o \
+         fmtullong.o fmtumax.o xstrchr.o zcatfd.o ${LIBOBJS}
+
+SUPPORT = Makefile
+
+all: $(LIBRARY_NAME)
+
+$(LIBRARY_NAME): $(OBJECTS)
+       $(RM) $@
+       $(AR) $(ARFLAGS) $@ $(OBJECTS)
+       -test -n "$(RANLIB)" && $(RANLIB) $@
+
+force:
+
+# The rule for 'includes' is written funny so that the if statement
+# always returns TRUE unless there really was an error installing the
+# include files.
+install:
+
+clean:
+       $(RM) $(OBJECTS) $(LIBRARY_NAME)
+
+realclean distclean maintainer-clean: clean
+       $(RM) Makefile
+
+mostlyclean: clean
+
+# Dependencies
+
+${BUILD_DIR}/version.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile
+       -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} version.h )
+
+# rules for losing makes, like SunOS
+clktck.o: clktck.c
+clock.o: clock.c
+fmtullong.o: fmtullong.c
+fmtulong.o: fmtulong.c
+fmtumax.o: fmtumax.c
+getcwd.o: getcwd.c
+getenv.o: getenv.c
+inet_aton.o: inet_aton.c
+itos.o: itos.c
+mailstat.o: mailstat.c
+makepath.o: makepath.c
+memset.o: memset.c
+mktime.o: mktime.c
+netconn.o: netconn.c
+netopen.o: netopen.c
+oslib.o: oslib.c
+pathcanon.o: pathcanon.c
+pathphys.o: pathphys.c
+rename.o: rename.c
+setlinebuf.o: setlinebuf.c
+shquote.o: shquote.c
+shtty.o: shtty.c
+snprintf.o: snprintf.c
+spell.o: spell.c
+strcasecmp.o: strcasecmp.c
+strerror.o: strerror.c
+strftime.o: strftime.c
+strindex.o: strindex.c
+stringlist.o: stringlist.c
+stringvec.o: stringvec.c
+strpbrk.o: strpbrk.c
+strtod.o: strtod.c
+strtoimax.o: strtoimax.c
+strtol.o: strtol.c
+strtoll.o: strtoll.c
+strtoul.o: strtoul.c
+strtoull.o: strtoull.c
+strtoumax.o: strtoumax.c
+strtrans.o: strtrans.c
+times.o: times.c
+timeval.o: timeval.c
+tmpfile.o: tmpfile.c
+vprint.o: vprint.c
+xstrchr.o: xstrchr.c
+zcatfd.o: zcatfd.c
+zread.o: zread.c
+zwrite.o: zwrite.c
+
+# dependencies for c files that include other c files
+fmtullong.o: fmtulong.c
+fmtumax.o: fmtulong.c
+strtoll.o: strtol.c
+strtoul.o: strtol.c
+strtoull.o: strtol.c
+
+# all files in the library depend on config.h
+clktck.o: ${BUILD_DIR}/config.h
+clock.o: ${BUILD_DIR}/config.h
+fmtullong.o: ${BUILD_DIR}/config.h
+fmtulong.o: ${BUILD_DIR}/config.h
+fmtumax.o: ${BUILD_DIR}/config.h
+getcwd.o: ${BUILD_DIR}/config.h
+getenv.o: ${BUILD_DIR}/config.h
+inet_aton.o: ${BUILD_DIR}/config.h
+itos.o: ${BUILD_DIR}/config.h
+mailstat.o: ${BUILD_DIR}/config.h
+makepath.o: ${BUILD_DIR}/config.h
+memset.o: ${BUILD_DIR}/config.h
+mktime.o: ${BUILD_DIR}/config.h
+netconn.o: ${BUILD_DIR}/config.h
+netopen.o: ${BUILD_DIR}/config.h
+oslib.o: ${BUILD_DIR}/config.h
+pathcanon.o: ${BUILD_DIR}/config.h
+pathphys.o: ${BUILD_DIR}/config.h
+rename.o: ${BUILD_DIR}/config.h
+setlinebuf.o: ${BUILD_DIR}/config.h
+shquote.o: ${BUILD_DIR}/config.h
+shtty.o: ${BUILD_DIR}/config.h
+snprintf.o: ${BUILD_DIR}/config.h
+spell.o: ${BUILD_DIR}/config.h
+strcasecmp.o: ${BUILD_DIR}/config.h
+strerror.o: ${BUILD_DIR}/config.h
+strftime.o: ${BUILD_DIR}/config.h
+strindex.o: ${BUILD_DIR}/config.h
+stringlist.o: ${BUILD_DIR}/config.h
+stringvec.o: ${BUILD_DIR}/config.h
+strpbrk.o: ${BUILD_DIR}/config.h
+strtod.o: ${BUILD_DIR}/config.h
+strtoimax.o: ${BUILD_DIR}/config.h
+strtol.o: ${BUILD_DIR}/config.h
+strtoll.o: ${BUILD_DIR}/config.h
+strtoul.o: ${BUILD_DIR}/config.h
+strtoull.o: ${BUILD_DIR}/config.h
+strtoumax.o: ${BUILD_DIR}/config.h
+strtrans.o: ${BUILD_DIR}/config.h
+times.o: ${BUILD_DIR}/config.h
+timeval.o: ${BUILD_DIR}/config.h
+tmpfile.o: ${BUILD_DIR}/config.h
+vprint.o: ${BUILD_DIR}/config.h
+xstrchr.o: ${BUILD_DIR}/config.h
+zcatfd.o: ${BUILD_DIR}/config.h
+zread.o: ${BUILD_DIR}/config.h
+zwrite.o: ${BUILD_DIR}/config.h
+
+clktck.o: ${topdir}/bashtypes.h
+
+getcwd.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
+getcwd.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/posixdir.h
+getcwd.o: ${BASHINCDIR}/memalloc.h ${BASHINCDIR}/ansi_stdlib.h
+
+getenv.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+getenv.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+getenv.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+getenv.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+getenv.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+getenv.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+getenv.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+getenv.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+getenv.o: ${BUILD_DIR}/version.h
+
+inet_aton.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+inet_aton.o: ${BASHINCDIR}/stdc.h
+
+itos.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+itos.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+itos.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+itos.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+itos.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+itos.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+itos.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+itos.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+makepath.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+makepath.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+makepath.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+makepath.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+makepath.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+makepath.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+makepath.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+makepath.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+netconn.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+netconn.o: ${topdir}/bashtypes.h
+
+netopen.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${topdir}/xmalloc.h
+netopen.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+netopen.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+netopen.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+netopen.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+netopen.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+netopen.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+netopen.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+netopen.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+
+oslib.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
+oslib.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+oslib.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+oslib.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+oslib.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+oslib.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+oslib.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+oslib.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+oslib.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+oslib.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+pathcanon.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
+pathcanon.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+pathcanon.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+pathcanon.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+pathcanon.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+pathcanon.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+pathcanon.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+pathcanon.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+pathcanon.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+pathcanon.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+pathphys.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
+pathphys.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+pathphys.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+pathphys.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+pathphys.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+pathphys.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+pathphys.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+pathphys.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+pathphys.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+pathphys.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+rename.o: ${topdir}/bashtypes.h ${BASHINCDIR}/stdc.h
+rename.o: ${BASHINCDIR}/posixstat.h
+
+setlinebuf.o: ${topdir}/xmalloc.h ${topdir}/bashansi.h
+setlinebuf.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/stdc.h
+
+shquote.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
+shquote.o: ${BASHINCDIR}/ansi_stdlib.h ${topdir}/xmalloc.h
+
+shtty.o: ${BASHINCDIR}/shtty.h
+shtty.o: ${BASHINCDIR}/stdc.h
+
+snprintf.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h ${topdir}/xmalloc.h
+snprintf.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+snprintf.o: ${BASHINCDIR}/typemax.h
+
+spell.o: ${topdir}/bashtypes.h
+spell.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/posixdir.h
+spell.o: ${BASHINCDIR}/ansi_stdlib.h
+
+strcasecmp.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
+strcasecmp.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+strerror.o: ${topdir}/bashtypes.h
+strerror.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+strerror.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+strerror.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+strerror.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+strerror.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+strerror.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+strerror.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+strindex.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
+strindex.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+stringlist.o: ${topdir}/bashansi.h
+stringlist.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+stringlist.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+stringlist.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+stringlist.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+stringlist.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+stringlist.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+stringlist.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+stringvec.o: ${topdir}/bashansi.h ${BASHINCDIR}/chartypes.h
+stringvec.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+stringvec.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+stringvec.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+stringvec.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+stringvec.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+stringvec.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+stringvec.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+strpbrk.o: ${BASHINCDIR}/stdc.h
+
+strtod.o: ${topdir}/bashansi.h
+strtod.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+strtoimax.o: ${BASHINCDIR}/stdc.h
+
+strtol.o: ${topdir}/bashansi.h
+strtol.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtol.o: ${BASHINCDIR}/typemax.h
+
+strtoll.o: ${topdir}/bashansi.h
+strtoll.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtoll.o: ${BASHINCDIR}/typemax.h
+
+strtoul.o: ${topdir}/bashansi.h
+strtoul.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtoul.o: ${BASHINCDIR}/typemax.h
+
+strtoull.o: ${topdir}/bashansi.h
+strtoull.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtoull.o: ${BASHINCDIR}/typemax.h
+
+strtoumax.o: ${BASHINCDIR}/stdc.h
+
+strtrans.o: ${topdir}/bashansi.h
+strtrans.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtrans.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+strtrans.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+strtrans.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+strtrans.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+strtrans.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+strtrans.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+strtrans.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+times.o: ${BASHINCDIR}/systimes.h
+times.o: ${BASHINCDIR}/posixtime.h
+
+timeval.o: ${BASHINCDIR}/posixtime.h
+
+tmpfile.o: ${topdir}/bashtypes.h
+tmpfile.o: ${BASHINCDIR}/posixstat.h
+tmpfile.o: ${BASHINCDIR}/filecntl.h
+
+clock.o: ${BASHINCDIR}/posixtime.h
+
+mailstat.o: ${topdir}/bashansi.h
+mailstat.o: ${topdir}/bashtypes.h
+mailstat.o: ${BASHINCDIR}/ansi_stdlib.h
+mailstat.o: ${BASHINCDIR}/posixstat.h
+mailstat.o: ${BASHINCDIR}/posixdir.h
+mailstat.o: ${BASHINCDIR}/maxpath.h
+
+fmtulong.o: ${topdir}/bashansi.h
+fmtulong.o: ${BASHINCDIR}/ansi_stdlib.h
+fmtulong.o: ${BASHINCDIR}/chartypes.h
+fmtulong.o: ${BASHINCDIR}/stdc.h
+fmtulong.o: ${BASHINCDIR}/typemax.h
+fmtulong.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
+
+fmtullong.o: ${topdir}/bashansi.h
+fmtullong.o: ${BASHINCDIR}/ansi_stdlib.h
+fmtullong.o: ${BASHINCDIR}/chartypes.h
+fmtullong.o: ${BASHINCDIR}/stdc.h
+fmtullong.o: ${BASHINCDIR}/typemax.h
+fmtullong.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
+
+fmtumax.o: ${topdir}/bashansi.h
+fmtumax.o: ${BASHINCDIR}/ansi_stdlib.h
+fmtumax.o: ${BASHINCDIR}/chartypes.h
+fmtumax.o: ${BASHINCDIR}/stdc.h
+fmtumax.o: ${BASHINCDIR}/typemax.h
+fmtumax.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
+
+xstrchr.o: ${topdir}/bashansi.h
+xstrchr.o: ${BASHINCDIR}/ansi_stdlib.h
+xstrchr.o: ${BASHINCDIR}/shmbutil.h
diff --git a/lib/sh/strnlen.c b/lib/sh/strnlen.c
new file mode 100644 (file)
index 0000000..53e2fe2
--- /dev/null
@@ -0,0 +1,39 @@
+/* Copyright (C) 2004 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if !defined (HAVE_STRNLEN)
+
+#include <stdc.h>
+
+/* Find the length of S, but scan at most MAXLEN characters.  If no '\0'
+   terminator is found within the first MAXLEN characters, return MAXLEN. */
+size_t
+strnlen (s, maxlen)
+     register const char *s;
+     size_t maxlen;
+{
+  register const char *e;
+  size_t n;
+
+  for (e = s,n = 0; *e && n < maxlen; e++, n++)
+    ;
+  return n;
+}
+#endif
diff --git a/lib/sh/strnlen.c~ b/lib/sh/strnlen.c~
new file mode 100644 (file)
index 0000000..3c493a8
--- /dev/null
@@ -0,0 +1,44 @@
+/* Copyright (C) 1991, 1994 Free Software Foundation, Inc.
+   NOTE: The canonical source of this file is maintained with the GNU C Library.
+   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if !defined (HAVE_STRPBRK)
+
+#include <stdc.h>
+
+/* Find the first ocurrence in S of any character in ACCEPT.  */
+char *
+strpbrk (s, accept)
+     register const char *s;
+     register const char *accept;
+{
+  while (*s != '\0')
+    {
+      const char *a = accept;
+      while (*a != '\0')
+       if (*a++ == *s)
+         return (char *) s;
+      ++s;
+    }
+
+  return 0;
+}
+#endif
diff --git a/parse.y b/parse.y
index 363430e5b60a9c286004fc108c4a11c3a60c07ff..68d66dfede17ed9c78f3338a96b4f77735ca068d 100644 (file)
--- a/parse.y
+++ b/parse.y
@@ -50,6 +50,7 @@
 #include "parser.h"
 #include "mailcheck.h"
 #include "test.h"
+#include "builtins.h"
 #include "builtins/common.h"
 #include "builtins/builtext.h"
 
@@ -1028,6 +1029,7 @@ timespec: TIME
 #define PST_ALEXPAND   0x0800          /* OK to expand aliases - unused */
 #define PST_CMDTOKEN   0x1000          /* command token OK - unused */
 #define PST_COMPASSIGN 0x2000          /* parsing x=(...) compound assignment */
+#define PST_ASSIGNOK   0x4000          /* assignment statement ok in this context */
 
 /* Initial size to allocate for tokens, and the
    amount to grow them by. */
@@ -2567,6 +2569,8 @@ read_token (command)
       parser_state &= ~PST_ALEXPNEXT;
 #endif /* ALIAS */
 
+      parser_state &= ~PST_ASSIGNOK;
+
       return (character);
     }
 
@@ -2580,6 +2584,8 @@ read_token (command)
        parser_state &= ~PST_ALEXPNEXT;
 #endif /* ALIAS */
 
+      parser_state &= ~PST_ASSIGNOK;
+
       peek_char = shell_getc (1);
       if (character == peek_char)
        {
@@ -2607,6 +2613,7 @@ read_token (command)
 #if defined (ALIAS)
              parser_state &= ~PST_ALEXPNEXT;
 #endif /* ALIAS */
+
              return (SEMI_SEMI);
 
            case '&':
@@ -3515,7 +3522,7 @@ read_token_word (character)
          goto next_character;
         }
       /* Identify possible compound array variable assignment. */
-      else if MBTEST(character == '=' && token_index > 0 && token_is_assignment (token, token_index))
+      else if MBTEST(character == '=' && token_index > 0 && (assignment_acceptable (last_read_token) || (parser_state & PST_ASSIGNOK)) && token_is_assignment (token, token_index))
        {
          peek_char = shell_getc (1);
          if MBTEST(peek_char == '(')           /* ) */
@@ -3642,6 +3649,14 @@ got_token:
        the_word->flags |= W_NOSPLIT;
     }
 
+  if (command_token_position (last_read_token))
+    {
+      struct builtin *b;
+      b = builtin_address_internal (token, 0);
+      if (b && (b->flags & ASSIGNMENT_BUILTIN))
+        parser_state |= PST_ASSIGNOK;
+    }
+
   yylval.word = the_word;
 
   result = ((the_word->flags & (W_ASSIGNMENT|W_NOSPLIT)) == (W_ASSIGNMENT|W_NOSPLIT))
diff --git a/parse.y~ b/parse.y~
new file mode 100644 (file)
index 0000000..75163c5
--- /dev/null
+++ b/parse.y~
@@ -0,0 +1,4874 @@
+/* Yacc grammar for bash. */
+
+/* Copyright (C) 1989-2004 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash, the Bourne Again SHell.
+
+   Bash is free software; you can redistribute it and/or modify it under
+   the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 2, or (at your option) any later
+   version.
+
+   Bash is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+   for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with Bash; see the file LICENSE.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+%{
+#include "config.h"
+
+#include "bashtypes.h"
+#include "bashansi.h"
+
+#include "filecntl.h"
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#if defined (HAVE_LOCALE_H)
+#  include <locale.h>
+#endif
+
+#include <stdio.h>
+#include "chartypes.h"
+#include <signal.h>
+
+#include "memalloc.h"
+
+#include "bashintl.h"
+
+#define NEED_STRFTIME_DECL     /* used in externs.h */
+
+#include "shell.h"
+#include "trap.h"
+#include "flags.h"
+#include "parser.h"
+#include "mailcheck.h"
+#include "test.h"
+#include "builtins.h"
+#include "builtins/common.h"
+#include "builtins/builtext.h"
+
+#include "shmbutil.h"
+
+#if defined (READLINE)
+#  include "bashline.h"
+#  include <readline/readline.h>
+#endif /* READLINE */
+
+#if defined (HISTORY)
+#  include "bashhist.h"
+#  include <readline/history.h>
+#endif /* HISTORY */
+
+#if defined (JOB_CONTROL)
+#  include "jobs.h"
+#endif /* JOB_CONTROL */
+
+#if defined (ALIAS)
+#  include "alias.h"
+#else
+typedef void *alias_t;
+#endif /* ALIAS */
+
+#if defined (PROMPT_STRING_DECODE)
+#  ifndef _MINIX
+#    include <sys/param.h>
+#  endif
+#  include <time.h>
+#  if defined (TM_IN_SYS_TIME)
+#    include <sys/types.h>
+#    include <sys/time.h>
+#  endif /* TM_IN_SYS_TIME */
+#  include "maxpath.h"
+#endif /* PROMPT_STRING_DECODE */
+
+#define RE_READ_TOKEN  -99
+#define NO_EXPANSION   -100
+
+#ifdef DEBUG
+#  define YYDEBUG 1
+#else
+#  define YYDEBUG 0
+#endif
+
+#if defined (HANDLE_MULTIBYTE)
+#  define last_shell_getc_is_singlebyte \
+       ((shell_input_line_index > 1) \
+               ? shell_input_line_property[shell_input_line_index - 1] \
+               : 1)
+#  define MBTEST(x)    ((x) && last_shell_getc_is_singlebyte)
+#else
+#  define last_shell_getc_is_singlebyte        1
+#  define MBTEST(x)    ((x))
+#endif
+
+#if defined (EXTENDED_GLOB)
+extern int extended_glob;
+#endif
+
+extern int eof_encountered;
+extern int no_line_editing, running_under_emacs;
+extern int current_command_number;
+extern int sourcelevel;
+extern int posixly_correct;
+extern int last_command_exit_value;
+extern int interrupt_immediately;
+extern char *shell_name, *current_host_name;
+extern char *dist_version;
+extern int patch_level;
+extern int dump_translatable_strings, dump_po_strings;
+extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin;
+#if defined (BUFFERED_INPUT)
+extern int bash_input_fd_changed;
+#endif
+
+extern int errno;
+/* **************************************************************** */
+/*                                                                 */
+/*                 "Forward" declarations                          */
+/*                                                                 */
+/* **************************************************************** */
+
+#ifdef DEBUG
+static void debug_parser __P((int));
+#endif
+
+static int yy_getc __P((void));
+static int yy_ungetc __P((int));
+
+#if defined (READLINE)
+static int yy_readline_get __P((void));
+static int yy_readline_unget __P((int));
+#endif
+
+static int yy_string_get __P((void));
+static int yy_string_unget __P((int));
+static int yy_stream_get __P((void));
+static int yy_stream_unget __P((int));
+
+static int shell_getc __P((int));
+static void shell_ungetc __P((int));
+static void discard_until __P((int));
+
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+static void push_string __P((char *, int, alias_t *));
+static void pop_string __P((void));
+static void free_string_list __P((void));
+#endif
+
+static char *read_a_line __P((int));
+
+static int reserved_word_acceptable __P((int));
+static int yylex __P((void));
+static int alias_expand_token __P((char *));
+static int time_command_acceptable __P((void));
+static int special_case_tokens __P((char *));
+static int read_token __P((int));
+static char *parse_matched_pair __P((int, int, int, int *, int));
+#if defined (ARRAY_VARS)
+static char *parse_compound_assignment __P((int *));
+#endif
+#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND)
+static int parse_dparen __P((int));
+static int parse_arith_cmd __P((char **, int));
+#endif
+#if defined (COND_COMMAND)
+static void cond_error __P((void));
+static COND_COM *cond_expr __P((void));
+static COND_COM *cond_or __P((void));
+static COND_COM *cond_and __P((void));
+static COND_COM *cond_term __P((void));
+static int cond_skip_newlines __P((void));
+static COMMAND *parse_cond_command __P((void));
+#endif
+#if defined (ARRAY_VARS)
+static int token_is_assignment __P((char *, int));
+static int token_is_ident __P((char *, int));
+#endif
+static int read_token_word __P((int));
+static void discard_parser_constructs __P((int));
+
+static char *error_token_from_token __P((int));
+static char *error_token_from_text __P((void));
+static void print_offending_line __P((void));
+static void report_syntax_error __P((char *));
+
+static void handle_eof_input_unit __P((void));
+static void prompt_again __P((void));
+#if 0
+static void reset_readline_prompt __P((void));
+#endif
+static void print_prompt __P((void));
+
+#if defined (HISTORY)
+char *history_delimiting_chars __P((void));
+#endif
+
+#if defined (HANDLE_MULTIBYTE)
+static void set_line_mbstate __P((void));
+static char *shell_input_line_property = NULL;
+#else
+#  define set_line_mbstate()
+#endif
+
+extern int yyerror __P((const char *));
+
+#ifdef DEBUG
+extern int yydebug;
+#endif
+
+/* Default prompt strings */
+char *primary_prompt = PPROMPT;
+char *secondary_prompt = SPROMPT;
+
+/* PROMPT_STRING_POINTER points to one of these, never to an actual string. */
+char *ps1_prompt, *ps2_prompt;
+
+/* Handle on the current prompt string.  Indirectly points through
+   ps1_ or ps2_prompt. */
+char **prompt_string_pointer = (char **)NULL;
+char *current_prompt_string;
+
+/* Non-zero means we expand aliases in commands. */
+int expand_aliases = 0;
+
+/* If non-zero, the decoded prompt string undergoes parameter and
+   variable substitution, command substitution, arithmetic substitution,
+   string expansion, process substitution, and quote removal in
+   decode_prompt_string. */
+int promptvars = 1;
+
+/* If non-zero, $'...' and $"..." are expanded when they appear within
+   a ${...} expansion, even when the expansion appears within double
+   quotes. */
+int extended_quote = 1;
+
+/* The decoded prompt string.  Used if READLINE is not defined or if
+   editing is turned off.  Analogous to current_readline_prompt. */
+static char *current_decoded_prompt;
+
+/* The number of lines read from input while creating the current command. */
+int current_command_line_count;
+
+/* Variables to manage the task of reading here documents, because we need to
+   defer the reading until after a complete command has been collected. */
+static REDIRECT *redir_stack[10];
+int need_here_doc;
+
+/* Where shell input comes from.  History expansion is performed on each
+   line when the shell is interactive. */
+static char *shell_input_line = (char *)NULL;
+static int shell_input_line_index;
+static int shell_input_line_size;      /* Amount allocated for shell_input_line. */
+static int shell_input_line_len;       /* strlen (shell_input_line) */
+
+/* Either zero or EOF. */
+static int shell_input_line_terminator;
+
+/* The line number in a script on which a function definition starts. */
+static int function_dstart;
+
+/* The line number in a script on which a function body starts. */
+static int function_bstart;
+
+/* The line number in a script at which an arithmetic for command starts. */
+static int arith_for_lineno;
+
+/* The line number in a script where the word in a `case WORD', `select WORD'
+   or `for WORD' begins.  This is a nested command maximum, since the array
+   index is decremented after a case, select, or for command is parsed. */
+#define MAX_CASE_NEST  128
+static int word_lineno[MAX_CASE_NEST];
+static int word_top = -1;
+
+/* If non-zero, it is the token that we want read_token to return
+   regardless of what text is (or isn't) present to be read.  This
+   is reset by read_token.  If token_to_read == WORD or
+   ASSIGNMENT_WORD, yylval.word should be set to word_desc_to_read. */
+static int token_to_read;
+static WORD_DESC *word_desc_to_read;
+
+static REDIRECTEE redir;
+%}
+
+%union {
+  WORD_DESC *word;             /* the word that we read. */
+  int number;                  /* the number that we read. */
+  WORD_LIST *word_list;
+  COMMAND *command;
+  REDIRECT *redirect;
+  ELEMENT element;
+  PATTERN_LIST *pattern;
+}
+
+/* Reserved words.  Members of the first group are only recognized
+   in the case that they are preceded by a list_terminator.  Members
+   of the second group are for [[...]] commands.  Members of the
+   third group are recognized only under special circumstances. */
+%token IF THEN ELSE ELIF FI CASE ESAC FOR SELECT WHILE UNTIL DO DONE FUNCTION
+%token COND_START COND_END COND_ERROR
+%token IN BANG TIME TIMEOPT
+
+/* More general tokens. yylex () knows how to make these. */
+%token <word> WORD ASSIGNMENT_WORD
+%token <number> NUMBER
+%token <word_list> ARITH_CMD ARITH_FOR_EXPRS
+%token <command> COND_CMD
+%token AND_AND OR_OR GREATER_GREATER LESS_LESS LESS_AND LESS_LESS_LESS
+%token GREATER_AND SEMI_SEMI LESS_LESS_MINUS AND_GREATER LESS_GREATER
+%token GREATER_BAR
+
+/* The types that the various syntactical units return. */
+
+%type <command> inputunit command pipeline pipeline_command
+%type <command> list list0 list1 compound_list simple_list simple_list1
+%type <command> simple_command shell_command
+%type <command> for_command select_command case_command group_command
+%type <command> arith_command
+%type <command> cond_command
+%type <command> arith_for_command
+%type <command> function_def function_body if_command elif_clause subshell
+%type <redirect> redirection redirection_list
+%type <element> simple_command_element
+%type <word_list> word_list pattern
+%type <pattern> pattern_list case_clause_sequence case_clause
+%type <number> timespec
+%type <number> list_terminator
+
+%start inputunit
+
+%left '&' ';' '\n' yacc_EOF
+%left AND_AND OR_OR
+%right '|'
+%%
+
+inputunit:     simple_list simple_list_terminator
+                       {
+                         /* Case of regular command.  Discard the error
+                            safety net,and return the command just parsed. */
+                         global_command = $1;
+                         eof_encountered = 0;
+                         /* discard_parser_constructs (0); */
+                         YYACCEPT;
+                       }
+       |       '\n'
+                       {
+                         /* Case of regular command, but not a very
+                            interesting one.  Return a NULL command. */
+                         global_command = (COMMAND *)NULL;
+                         YYACCEPT;
+                       }
+       |       error '\n'
+                       {
+                         /* Error during parsing.  Return NULL command. */
+                         global_command = (COMMAND *)NULL;
+                         eof_encountered = 0;
+                         /* discard_parser_constructs (1); */
+                         if (interactive)
+                           {
+                             YYACCEPT;
+                           }
+                         else
+                           {
+                             YYABORT;
+                           }
+                       }
+       |       yacc_EOF
+                       {
+                         /* Case of EOF seen by itself.  Do ignoreeof or
+                            not. */
+                         global_command = (COMMAND *)NULL;
+                         handle_eof_input_unit ();
+                         YYACCEPT;
+                       }
+       ;
+
+word_list:     WORD
+                       { $$ = make_word_list ($1, (WORD_LIST *)NULL); }
+       |       word_list WORD
+                       { $$ = make_word_list ($2, $1); }
+       ;
+
+redirection:   '>' WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (1, r_output_direction, redir);
+                       }
+       |       '<' WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (0, r_input_direction, redir);
+                       }
+       |       NUMBER '>' WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_output_direction, redir);
+                       }
+       |       NUMBER '<' WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_input_direction, redir);
+                       }
+       |       GREATER_GREATER WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (1, r_appending_to, redir);
+                       }
+       |       NUMBER GREATER_GREATER WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_appending_to, redir);
+                       }
+       |       LESS_LESS WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (0, r_reading_until, redir);
+                         redir_stack[need_here_doc++] = $$;
+                       }
+       |       NUMBER LESS_LESS WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_reading_until, redir);
+                         redir_stack[need_here_doc++] = $$;
+                       }
+       |       LESS_LESS_LESS WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (0, r_reading_string, redir);
+                       }
+       |       NUMBER LESS_LESS_LESS WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_reading_string, redir);
+                       }
+       |       LESS_AND NUMBER
+                       {
+                         redir.dest = $2;
+                         $$ = make_redirection (0, r_duplicating_input, redir);
+                       }
+       |       NUMBER LESS_AND NUMBER
+                       {
+                         redir.dest = $3;
+                         $$ = make_redirection ($1, r_duplicating_input, redir);
+                       }
+       |       GREATER_AND NUMBER
+                       {
+                         redir.dest = $2;
+                         $$ = make_redirection (1, r_duplicating_output, redir);
+                       }
+       |       NUMBER GREATER_AND NUMBER
+                       {
+                         redir.dest = $3;
+                         $$ = make_redirection ($1, r_duplicating_output, redir);
+                       }
+       |       LESS_AND WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (0, r_duplicating_input_word, redir);
+                       }
+       |       NUMBER LESS_AND WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_duplicating_input_word, redir);
+                       }
+       |       GREATER_AND WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (1, r_duplicating_output_word, redir);
+                       }
+       |       NUMBER GREATER_AND WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_duplicating_output_word, redir);
+                       }
+       |       LESS_LESS_MINUS WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection
+                           (0, r_deblank_reading_until, redir);
+                         redir_stack[need_here_doc++] = $$;
+                       }
+       |       NUMBER LESS_LESS_MINUS WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection
+                           ($1, r_deblank_reading_until, redir);
+                         redir_stack[need_here_doc++] = $$;
+                       }
+       |       GREATER_AND '-'
+                       {
+                         redir.dest = 0;
+                         $$ = make_redirection (1, r_close_this, redir);
+                       }
+       |       NUMBER GREATER_AND '-'
+                       {
+                         redir.dest = 0;
+                         $$ = make_redirection ($1, r_close_this, redir);
+                       }
+       |       LESS_AND '-'
+                       {
+                         redir.dest = 0;
+                         $$ = make_redirection (0, r_close_this, redir);
+                       }
+       |       NUMBER LESS_AND '-'
+                       {
+                         redir.dest = 0;
+                         $$ = make_redirection ($1, r_close_this, redir);
+                       }
+       |       AND_GREATER WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (1, r_err_and_out, redir);
+                       }
+       |       NUMBER LESS_GREATER WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_input_output, redir);
+                       }
+       |       LESS_GREATER WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (0, r_input_output, redir);
+                       }
+       |       GREATER_BAR WORD
+                       {
+                         redir.filename = $2;
+                         $$ = make_redirection (1, r_output_force, redir);
+                       }
+       |       NUMBER GREATER_BAR WORD
+                       {
+                         redir.filename = $3;
+                         $$ = make_redirection ($1, r_output_force, redir);
+                       }
+       ;
+
+simple_command_element: WORD
+                       { $$.word = $1; $$.redirect = 0; }
+       |       ASSIGNMENT_WORD
+                       { $$.word = $1; $$.redirect = 0; }
+       |       redirection
+                       { $$.redirect = $1; $$.word = 0; }
+       ;
+
+redirection_list: redirection
+                       {
+                         $$ = $1;
+                       }
+       |       redirection_list redirection
+                       {
+                         register REDIRECT *t;
+
+                         for (t = $1; t->next; t = t->next)
+                           ;
+                         t->next = $2;
+                         $$ = $1;
+                       }
+       ;
+
+simple_command:        simple_command_element
+                       { $$ = make_simple_command ($1, (COMMAND *)NULL); }
+       |       simple_command simple_command_element
+                       { $$ = make_simple_command ($2, $1); }
+       ;
+
+command:       simple_command
+                       { $$ = clean_simple_command ($1); }
+       |       shell_command
+                       { $$ = $1; }
+       |       shell_command redirection_list
+                       {
+                         COMMAND *tc;
+
+                         tc = $1;
+                         if (tc->redirects)
+                           {
+                             register REDIRECT *t;
+                             for (t = tc->redirects; t->next; t = t->next)
+                               ;
+                             t->next = $2;
+                           }
+                         else
+                           tc->redirects = $2;
+                         $$ = $1;
+                       }
+       |       function_def
+                       { $$ = $1; }
+       ;
+
+shell_command: for_command
+                       { $$ = $1; }
+       |       case_command
+                       { $$ = $1; }
+       |       WHILE compound_list DO compound_list DONE
+                       { $$ = make_while_command ($2, $4); }
+       |       UNTIL compound_list DO compound_list DONE
+                       { $$ = make_until_command ($2, $4); }
+       |       select_command
+                       { $$ = $1; }
+       |       if_command
+                       { $$ = $1; }
+       |       subshell
+                       { $$ = $1; }
+       |       group_command
+                       { $$ = $1; }
+       |       arith_command
+                       { $$ = $1; }
+       |       cond_command
+                       { $$ = $1; }
+       |       arith_for_command
+                       { $$ = $1; }
+       ;
+
+for_command:   FOR WORD newline_list DO compound_list DONE
+                       {
+                         $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       FOR WORD newline_list '{' compound_list '}'
+                       {
+                         $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       FOR WORD ';' newline_list DO compound_list DONE
+                       {
+                         $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       FOR WORD ';' newline_list '{' compound_list '}'
+                       {
+                         $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE
+                       {
+                         $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}'
+                       {
+                         $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE
+                       {
+                         $$ = make_for_command ($2, (WORD_LIST *)NULL, $8, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}'
+                       {
+                         $$ = make_for_command ($2, (WORD_LIST *)NULL, $8, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       ;
+
+arith_for_command:     FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE
+                               {
+                                 $$ = make_arith_for_command ($2, $6, arith_for_lineno);
+                                 if (word_top > 0) word_top--;
+                               }
+       |               FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}'
+                               {
+                                 $$ = make_arith_for_command ($2, $6, arith_for_lineno);
+                                 if (word_top > 0) word_top--;
+                               }
+       |               FOR ARITH_FOR_EXPRS DO compound_list DONE
+                               {
+                                 $$ = make_arith_for_command ($2, $4, arith_for_lineno);
+                                 if (word_top > 0) word_top--;
+                               }
+       |               FOR ARITH_FOR_EXPRS '{' compound_list '}'
+                               {
+                                 $$ = make_arith_for_command ($2, $4, arith_for_lineno);
+                                 if (word_top > 0) word_top--;
+                               }
+       ;
+
+select_command:        SELECT WORD newline_list DO list DONE
+                       {
+                         $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       SELECT WORD newline_list '{' list '}'
+                       {
+                         $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       SELECT WORD ';' newline_list DO list DONE
+                       {
+                         $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       SELECT WORD ';' newline_list '{' list '}'
+                       {
+                         $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       SELECT WORD newline_list IN word_list list_terminator newline_list DO list DONE
+                       {
+                         $$ = make_select_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       SELECT WORD newline_list IN word_list list_terminator newline_list '{' list '}'
+                       {
+                         $$ = make_select_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       ;
+
+case_command:  CASE WORD newline_list IN newline_list ESAC
+                       {
+                         $$ = make_case_command ($2, (PATTERN_LIST *)NULL, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       CASE WORD newline_list IN case_clause_sequence newline_list ESAC
+                       {
+                         $$ = make_case_command ($2, $5, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       |       CASE WORD newline_list IN case_clause ESAC
+                       {
+                         $$ = make_case_command ($2, $5, word_lineno[word_top]);
+                         if (word_top > 0) word_top--;
+                       }
+       ;
+
+function_def:  WORD '(' ')' newline_list function_body
+                       { $$ = make_function_def ($1, $5, function_dstart, function_bstart); }
+
+       |       FUNCTION WORD '(' ')' newline_list function_body
+                       { $$ = make_function_def ($2, $6, function_dstart, function_bstart); }
+
+       |       FUNCTION WORD newline_list function_body
+                       { $$ = make_function_def ($2, $4, function_dstart, function_bstart); }
+       ;
+
+
+function_body: shell_command
+                       { $$ = $1; }
+       |       shell_command redirection_list
+                       {
+                         COMMAND *tc;
+
+                         tc = $1;
+                         /* According to Posix.2 3.9.5, redirections
+                            specified after the body of a function should
+                            be attached to the function and performed when
+                            the function is executed, not as part of the
+                            function definition command. */
+                         /* XXX - I don't think it matters, but we might
+                            want to change this in the future to avoid
+                            problems differentiating between a function
+                            definition with a redirection and a function
+                            definition containing a single command with a
+                            redirection.  The two are semantically equivalent,
+                            though -- the only difference is in how the
+                            command printing code displays the redirections. */
+                         if (tc->redirects)
+                           {
+                             register REDIRECT *t;
+                             for (t = tc->redirects; t->next; t = t->next)
+                               ;
+                             t->next = $2;
+                           }
+                         else
+                           tc->redirects = $2;
+                         $$ = $1;
+                       }
+       ;
+
+subshell:      '(' compound_list ')'
+                       {
+                         $$ = make_subshell_command ($2);
+                         $$->flags |= CMD_WANT_SUBSHELL;
+                       }
+       ;
+
+if_command:    IF compound_list THEN compound_list FI
+                       { $$ = make_if_command ($2, $4, (COMMAND *)NULL); }
+       |       IF compound_list THEN compound_list ELSE compound_list FI
+                       { $$ = make_if_command ($2, $4, $6); }
+       |       IF compound_list THEN compound_list elif_clause FI
+                       { $$ = make_if_command ($2, $4, $5); }
+       ;
+
+
+group_command: '{' compound_list '}'
+                       { $$ = make_group_command ($2); }
+       ;
+
+arith_command: ARITH_CMD
+                       { $$ = make_arith_command ($1); }
+       ;
+
+cond_command:  COND_START COND_CMD COND_END
+                       { $$ = $2; }
+       ; 
+
+elif_clause:   ELIF compound_list THEN compound_list
+                       { $$ = make_if_command ($2, $4, (COMMAND *)NULL); }
+       |       ELIF compound_list THEN compound_list ELSE compound_list
+                       { $$ = make_if_command ($2, $4, $6); }
+       |       ELIF compound_list THEN compound_list elif_clause
+                       { $$ = make_if_command ($2, $4, $5); }
+       ;
+
+case_clause:   pattern_list
+       |       case_clause_sequence pattern_list
+                       { $2->next = $1; $$ = $2; }
+       ;
+
+pattern_list:  newline_list pattern ')' compound_list
+                       { $$ = make_pattern_list ($2, $4); }
+       |       newline_list pattern ')' newline_list
+                       { $$ = make_pattern_list ($2, (COMMAND *)NULL); }
+       |       newline_list '(' pattern ')' compound_list
+                       { $$ = make_pattern_list ($3, $5); }
+       |       newline_list '(' pattern ')' newline_list
+                       { $$ = make_pattern_list ($3, (COMMAND *)NULL); }
+       ;
+
+case_clause_sequence:  pattern_list SEMI_SEMI
+       |       case_clause_sequence pattern_list SEMI_SEMI
+                       { $2->next = $1; $$ = $2; }
+       ;
+
+pattern:       WORD
+                       { $$ = make_word_list ($1, (WORD_LIST *)NULL); }
+       |       pattern '|' WORD
+                       { $$ = make_word_list ($3, $1); }
+       ;
+
+/* A list allows leading or trailing newlines and
+   newlines as operators (equivalent to semicolons).
+   It must end with a newline or semicolon.
+   Lists are used within commands such as if, for, while.  */
+
+list:          newline_list list0
+                       {
+                         $$ = $2;
+                         if (need_here_doc)
+                           gather_here_documents ();
+                        }
+       ;
+
+compound_list: list
+       |       newline_list list1
+                       {
+                         $$ = $2;
+                       }
+       ;
+
+list0:         list1 '\n' newline_list
+       |       list1 '&' newline_list
+                       {
+                         if ($1->type == cm_connection)
+                           $$ = connect_async_list ($1, (COMMAND *)NULL, '&');
+                         else
+                           $$ = command_connect ($1, (COMMAND *)NULL, '&');
+                       }
+       |       list1 ';' newline_list
+
+       ;
+
+list1:         list1 AND_AND newline_list list1
+                       { $$ = command_connect ($1, $4, AND_AND); }
+       |       list1 OR_OR newline_list list1
+                       { $$ = command_connect ($1, $4, OR_OR); }
+       |       list1 '&' newline_list list1
+                       {
+                         if ($1->type == cm_connection)
+                           $$ = connect_async_list ($1, $4, '&');
+                         else
+                           $$ = command_connect ($1, $4, '&');
+                       }
+       |       list1 ';' newline_list list1
+                       { $$ = command_connect ($1, $4, ';'); }
+       |       list1 '\n' newline_list list1
+                       { $$ = command_connect ($1, $4, ';'); }
+       |       pipeline_command
+                       { $$ = $1; }
+       ;
+
+simple_list_terminator:        '\n'
+       |       yacc_EOF
+       ;
+
+list_terminator:'\n'
+               { $$ = '\n'; }
+       |       ';'
+               { $$ = ';'; }
+       |       yacc_EOF
+               { $$ = yacc_EOF; }
+       ;
+
+newline_list:
+       |       newline_list '\n'
+       ;
+
+/* A simple_list is a list that contains no significant newlines
+   and no leading or trailing newlines.  Newlines are allowed
+   only following operators, where they are not significant.
+
+   This is what an inputunit consists of.  */
+
+simple_list:   simple_list1
+                       {
+                         $$ = $1;
+                         if (need_here_doc)
+                           gather_here_documents ();
+                       }
+       |       simple_list1 '&'
+                       {
+                         if ($1->type == cm_connection)
+                           $$ = connect_async_list ($1, (COMMAND *)NULL, '&');
+                         else
+                           $$ = command_connect ($1, (COMMAND *)NULL, '&');
+                         if (need_here_doc)
+                           gather_here_documents ();
+                       }
+       |       simple_list1 ';'
+                       {
+                         $$ = $1;
+                         if (need_here_doc)
+                           gather_here_documents ();
+                       }
+       ;
+
+simple_list1:  simple_list1 AND_AND newline_list simple_list1
+                       { $$ = command_connect ($1, $4, AND_AND); }
+       |       simple_list1 OR_OR newline_list simple_list1
+                       { $$ = command_connect ($1, $4, OR_OR); }
+       |       simple_list1 '&' simple_list1
+                       {
+                         if ($1->type == cm_connection)
+                           $$ = connect_async_list ($1, $3, '&');
+                         else
+                           $$ = command_connect ($1, $3, '&');
+                       }
+       |       simple_list1 ';' simple_list1
+                       { $$ = command_connect ($1, $3, ';'); }
+
+       |       pipeline_command
+                       { $$ = $1; }
+       ;
+
+pipeline_command: pipeline
+                       { $$ = $1; }
+       |       BANG pipeline
+                       {
+                         $2->flags |= CMD_INVERT_RETURN;
+                         $$ = $2;
+                       }
+       |       timespec pipeline
+                       {
+                         $2->flags |= $1;
+                         $$ = $2;
+                       }
+       |       timespec BANG pipeline
+                       {
+                         $3->flags |= $1|CMD_INVERT_RETURN;
+                         $$ = $3;
+                       }
+       |       BANG timespec pipeline
+                       {
+                         $3->flags |= $2|CMD_INVERT_RETURN;
+                         $$ = $3;
+                       }
+       |       timespec list_terminator
+                       {
+                         ELEMENT x;
+
+                         /* Boy, this is unclean.  `time' by itself can
+                            time a null command.  We cheat and push a
+                            newline back if the list_terminator was a newline
+                            to avoid the double-newline problem (one to
+                            terminate this, one to terminate the command) */
+                         x.word = 0;
+                         x.redirect = 0;
+                         $$ = make_simple_command (x, (COMMAND *)NULL);
+                         $$->flags |= $1;
+                         /* XXX - let's cheat and push a newline back */
+                         if ($2 == '\n')
+                           token_to_read = '\n';
+                       }
+                       
+       ;
+
+pipeline:
+               pipeline '|' newline_list pipeline
+                       { $$ = command_connect ($1, $4, '|'); }
+       |       command
+                       { $$ = $1; }
+       ;
+
+timespec:      TIME
+                       { $$ = CMD_TIME_PIPELINE; }
+       |       TIME TIMEOPT
+                       { $$ = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
+       ;
+%%
+
+/* Possible states for the parser that require it to do special things. */
+#define PST_CASEPAT    0x0001          /* in a case pattern list */
+#define PST_ALEXPNEXT  0x0002          /* expand next word for aliases */
+#define PST_ALLOWOPNBRC        0x0004          /* allow open brace for function def */
+#define PST_NEEDCLOSBRC        0x0008          /* need close brace */
+#define PST_DBLPAREN   0x0010          /* double-paren parsing */
+#define PST_SUBSHELL   0x0020          /* ( ... ) subshell */
+#define PST_CMDSUBST   0x0040          /* $( ... ) command substitution */
+#define PST_CASESTMT   0x0080          /* parsing a case statement */
+#define PST_CONDCMD    0x0100          /* parsing a [[...]] command */
+#define PST_CONDEXPR   0x0200          /* parsing the guts of [[...]] */
+#define PST_ARITHFOR   0x0400          /* parsing an arithmetic for command */
+#define PST_ALEXPAND   0x0800          /* OK to expand aliases - unused */
+#define PST_CMDTOKEN   0x1000          /* command token OK - unused */
+#define PST_COMPASSIGN 0x2000          /* parsing x=(...) compound assignment */
+#define PST_ASSIGNOK   0x4000          /* assignment statement ok in this context */
+
+/* Initial size to allocate for tokens, and the
+   amount to grow them by. */
+#define TOKEN_DEFAULT_INITIAL_SIZE 496
+#define TOKEN_DEFAULT_GROW_SIZE 512
+
+/* Should we call prompt_again? */
+#define SHOULD_PROMPT() \
+  (interactive && (bash_input.type == st_stdin || bash_input.type == st_stream))
+
+#if defined (ALIAS)
+#  define expanding_alias() (pushed_string_list && pushed_string_list->expander)
+#else
+#  define expanding_alias() 0
+#endif
+
+/* The token currently being read. */
+static int current_token;
+
+/* The last read token, or NULL.  read_token () uses this for context
+   checking. */
+static int last_read_token;
+
+/* The token read prior to last_read_token. */
+static int token_before_that;
+
+/* The token read prior to token_before_that. */
+static int two_tokens_ago;
+
+/* The current parser state. */
+static int parser_state;
+
+/* Global var is non-zero when end of file has been reached. */
+int EOF_Reached = 0;
+
+#ifdef DEBUG
+static void
+debug_parser (i)
+     int i;
+{
+#if YYDEBUG != 0
+  yydebug = i;
+#endif
+}
+#endif
+
+/* yy_getc () returns the next available character from input or EOF.
+   yy_ungetc (c) makes `c' the next character to read.
+   init_yy_io (get, unget, type, location) makes the function GET the
+   installed function for getting the next character, makes UNGET the
+   installed function for un-getting a character, sets the type of stream
+   (either string or file) from TYPE, and makes LOCATION point to where
+   the input is coming from. */
+
+/* Unconditionally returns end-of-file. */
+int
+return_EOF ()
+{
+  return (EOF);
+}
+
+/* Variable containing the current get and unget functions.
+   See ./input.h for a clearer description. */
+BASH_INPUT bash_input;
+
+/* Set all of the fields in BASH_INPUT to NULL.  Free bash_input.name if it
+   is non-null, avoiding a memory leak. */
+void
+initialize_bash_input ()
+{
+  bash_input.type = st_none;
+  FREE (bash_input.name);
+  bash_input.name = (char *)NULL;
+  bash_input.location.file = (FILE *)NULL;
+  bash_input.location.string = (char *)NULL;
+  bash_input.getter = (sh_cget_func_t *)NULL;
+  bash_input.ungetter = (sh_cunget_func_t *)NULL;
+}
+
+/* Set the contents of the current bash input stream from
+   GET, UNGET, TYPE, NAME, and LOCATION. */
+void
+init_yy_io (get, unget, type, name, location)
+     sh_cget_func_t *get;
+     sh_cunget_func_t *unget;
+     enum stream_type type;
+     const char *name;
+     INPUT_STREAM location;
+{
+  bash_input.type = type;
+  FREE (bash_input.name);
+  bash_input.name = name ? savestring (name) : (char *)NULL;
+
+  /* XXX */
+#if defined (CRAY)
+  memcpy((char *)&bash_input.location.string, (char *)&location.string, sizeof(location));
+#else
+  bash_input.location = location;
+#endif
+  bash_input.getter = get;
+  bash_input.ungetter = unget;
+}
+
+char *
+yy_input_name ()
+{
+  return (bash_input.name ? bash_input.name : "stdin");
+}
+
+/* Call this to get the next character of input. */
+static int
+yy_getc ()
+{
+  return (*(bash_input.getter)) ();
+}
+
+/* Call this to unget C.  That is, to make C the next character
+   to be read. */
+static int
+yy_ungetc (c)
+     int c;
+{
+  return (*(bash_input.ungetter)) (c);
+}
+
+#if defined (BUFFERED_INPUT)
+#ifdef INCLUDE_UNUSED
+int
+input_file_descriptor ()
+{
+  switch (bash_input.type)
+    {
+    case st_stream:
+      return (fileno (bash_input.location.file));
+    case st_bstream:
+      return (bash_input.location.buffered_fd);
+    case st_stdin:
+    default:
+      return (fileno (stdin));
+    }
+}
+#endif
+#endif /* BUFFERED_INPUT */
+
+/* **************************************************************** */
+/*                                                                 */
+/*               Let input be read from readline ().               */
+/*                                                                 */
+/* **************************************************************** */
+
+#if defined (READLINE)
+char *current_readline_prompt = (char *)NULL;
+char *current_readline_line = (char *)NULL;
+int current_readline_line_index = 0;
+
+static int
+yy_readline_get ()
+{
+  SigHandler *old_sigint;
+  int line_len;
+  unsigned char c;
+
+  if (!current_readline_line)
+    {
+      if (!bash_readline_initialized)
+       initialize_readline ();
+
+#if defined (JOB_CONTROL)
+      if (job_control)
+       give_terminal_to (shell_pgrp, 0);
+#endif /* JOB_CONTROL */
+
+      old_sigint = (SigHandler *)NULL;
+      if (signal_is_ignored (SIGINT) == 0)
+       {
+         old_sigint = (SigHandler *)set_signal_handler (SIGINT, sigint_sighandler);
+         interrupt_immediately++;
+       }
+
+      current_readline_line = readline (current_readline_prompt ?
+                                         current_readline_prompt : "");
+
+      if (signal_is_ignored (SIGINT) == 0 && old_sigint)
+       {
+         interrupt_immediately--;
+         set_signal_handler (SIGINT, old_sigint);
+       }
+
+#if 0
+      /* Reset the prompt to the decoded value of prompt_string_pointer. */
+      reset_readline_prompt ();
+#endif
+
+      if (current_readline_line == 0)
+       return (EOF);
+
+      current_readline_line_index = 0;
+      line_len = strlen (current_readline_line);
+
+      current_readline_line = (char *)xrealloc (current_readline_line, 2 + line_len);
+      current_readline_line[line_len++] = '\n';
+      current_readline_line[line_len] = '\0';
+    }
+
+  if (current_readline_line[current_readline_line_index] == 0)
+    {
+      free (current_readline_line);
+      current_readline_line = (char *)NULL;
+      return (yy_readline_get ());
+    }
+  else
+    {
+      c = current_readline_line[current_readline_line_index++];
+      return (c);
+    }
+}
+
+static int
+yy_readline_unget (c)
+     int c;
+{
+  if (current_readline_line_index && current_readline_line)
+    current_readline_line[--current_readline_line_index] = c;
+  return (c);
+}
+
+void
+with_input_from_stdin ()
+{
+  INPUT_STREAM location;
+
+  if (bash_input.type != st_stdin && stream_on_stack (st_stdin) == 0)
+    {
+      location.string = current_readline_line;
+      init_yy_io (yy_readline_get, yy_readline_unget,
+                 st_stdin, "readline stdin", location);
+    }
+}
+
+#else  /* !READLINE */
+
+void
+with_input_from_stdin ()
+{
+  with_input_from_stream (stdin, "stdin");
+}
+#endif /* !READLINE */
+
+/* **************************************************************** */
+/*                                                                 */
+/*   Let input come from STRING.  STRING is zero terminated.       */
+/*                                                                 */
+/* **************************************************************** */
+
+static int
+yy_string_get ()
+{
+  register char *string;
+  register unsigned char c;
+
+  string = bash_input.location.string;
+
+  /* If the string doesn't exist, or is empty, EOF found. */
+  if (string && *string)
+    {
+      c = *string++;
+      bash_input.location.string = string;
+      return (c);
+    }
+  else
+    return (EOF);
+}
+
+static int
+yy_string_unget (c)
+     int c;
+{
+  *(--bash_input.location.string) = c;
+  return (c);
+}
+
+void
+with_input_from_string (string, name)
+     char *string;
+     const char *name;
+{
+  INPUT_STREAM location;
+
+  location.string = string;
+  init_yy_io (yy_string_get, yy_string_unget, st_string, name, location);
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*                  Let input come from STREAM.                    */
+/*                                                                 */
+/* **************************************************************** */
+
+/* These two functions used to test the value of the HAVE_RESTARTABLE_SYSCALLS
+   define, and just use getc/ungetc if it was defined, but since bash
+   installs its signal handlers without the SA_RESTART flag, some signals
+   (like SIGCHLD, SIGWINCH, etc.) received during a read(2) will not cause
+   the read to be restarted.  We need to restart it ourselves. */
+
+static int
+yy_stream_get ()
+{
+  int result;
+
+  result = EOF;
+  if (bash_input.location.file)
+    result = getc_with_restart (bash_input.location.file);
+
+  return (result);
+}
+
+static int
+yy_stream_unget (c)
+     int c;
+{
+  return (ungetc_with_restart (c, bash_input.location.file));
+}
+
+void
+with_input_from_stream (stream, name)
+     FILE *stream;
+     const char *name;
+{
+  INPUT_STREAM location;
+
+  location.file = stream;
+  init_yy_io (yy_stream_get, yy_stream_unget, st_stream, name, location);
+}
+
+typedef struct stream_saver {
+  struct stream_saver *next;
+  BASH_INPUT bash_input;
+  int line;
+#if defined (BUFFERED_INPUT)
+  BUFFERED_STREAM *bstream;
+#endif /* BUFFERED_INPUT */
+} STREAM_SAVER;
+
+/* The globally known line number. */
+int line_number = 0;
+
+#if defined (COND_COMMAND)
+static int cond_lineno;
+static int cond_token;
+#endif
+
+STREAM_SAVER *stream_list = (STREAM_SAVER *)NULL;
+
+void
+push_stream (reset_lineno)
+     int reset_lineno;
+{
+  STREAM_SAVER *saver = (STREAM_SAVER *)xmalloc (sizeof (STREAM_SAVER));
+
+  xbcopy ((char *)&bash_input, (char *)&(saver->bash_input), sizeof (BASH_INPUT));
+
+#if defined (BUFFERED_INPUT)
+  saver->bstream = (BUFFERED_STREAM *)NULL;
+  /* If we have a buffered stream, clear out buffers[fd]. */
+  if (bash_input.type == st_bstream && bash_input.location.buffered_fd >= 0)
+    saver->bstream = set_buffered_stream (bash_input.location.buffered_fd,
+                                         (BUFFERED_STREAM *)NULL);
+#endif /* BUFFERED_INPUT */
+
+  saver->line = line_number;
+  bash_input.name = (char *)NULL;
+  saver->next = stream_list;
+  stream_list = saver;
+  EOF_Reached = 0;
+  if (reset_lineno)
+    line_number = 0;
+}
+
+void
+pop_stream ()
+{
+  if (!stream_list)
+    EOF_Reached = 1;
+  else
+    {
+      STREAM_SAVER *saver = stream_list;
+
+      EOF_Reached = 0;
+      stream_list = stream_list->next;
+
+      init_yy_io (saver->bash_input.getter,
+                 saver->bash_input.ungetter,
+                 saver->bash_input.type,
+                 saver->bash_input.name,
+                 saver->bash_input.location);
+
+#if defined (BUFFERED_INPUT)
+      /* If we have a buffered stream, restore buffers[fd]. */
+      /* If the input file descriptor was changed while this was on the
+        save stack, update the buffered fd to the new file descriptor and
+        re-establish the buffer <-> bash_input fd correspondence. */
+      if (bash_input.type == st_bstream && bash_input.location.buffered_fd >= 0)
+       {
+         if (bash_input_fd_changed)
+           {
+             bash_input_fd_changed = 0;
+             if (default_buffered_input >= 0)
+               {
+                 bash_input.location.buffered_fd = default_buffered_input;
+                 saver->bstream->b_fd = default_buffered_input;
+                 SET_CLOSE_ON_EXEC (default_buffered_input);
+               }
+           }
+         /* XXX could free buffered stream returned as result here. */
+         set_buffered_stream (bash_input.location.buffered_fd, saver->bstream);
+       }
+#endif /* BUFFERED_INPUT */
+
+      line_number = saver->line;
+
+      FREE (saver->bash_input.name);
+      free (saver);
+    }
+}
+
+/* Return 1 if a stream of type TYPE is saved on the stack. */
+int
+stream_on_stack (type)
+     enum stream_type type;
+{
+  register STREAM_SAVER *s;
+
+  for (s = stream_list; s; s = s->next)
+    if (s->bash_input.type == type)
+      return 1;
+  return 0;
+}
+
+/* Save the current token state and return it in a malloced array. */
+int *
+save_token_state ()
+{
+  int *ret;
+
+  ret = (int *)xmalloc (3 * sizeof (int));
+  ret[0] = last_read_token;
+  ret[1] = token_before_that;
+  ret[2] = two_tokens_ago;
+  return ret;
+}
+
+void
+restore_token_state (ts)
+     int *ts;
+{
+  if (ts == 0)
+    return;
+  last_read_token = ts[0];
+  token_before_that = ts[1];
+  two_tokens_ago = ts[2];
+}
+
+/*
+ * This is used to inhibit alias expansion and reserved word recognition
+ * inside case statement pattern lists.  A `case statement pattern list' is:
+ *
+ *     everything between the `in' in a `case word in' and the next ')'
+ *     or `esac'
+ *     everything between a `;;' and the next `)' or `esac'
+ */
+
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+
+#define END_OF_ALIAS 0
+
+/*
+ * Pseudo-global variables used in implementing token-wise alias expansion.
+ */
+
+/*
+ * Pushing and popping strings.  This works together with shell_getc to
+ * implement alias expansion on a per-token basis.
+ */
+
+typedef struct string_saver {
+  struct string_saver *next;
+  int expand_alias;  /* Value to set expand_alias to when string is popped. */
+  char *saved_line;
+#if defined (ALIAS)
+  alias_t *expander;   /* alias that caused this line to be pushed. */
+#endif
+  int saved_line_size, saved_line_index, saved_line_terminator;
+} STRING_SAVER;
+
+STRING_SAVER *pushed_string_list = (STRING_SAVER *)NULL;
+
+/*
+ * Push the current shell_input_line onto a stack of such lines and make S
+ * the current input.  Used when expanding aliases.  EXPAND is used to set
+ * the value of expand_next_token when the string is popped, so that the
+ * word after the alias in the original line is handled correctly when the
+ * alias expands to multiple words.  TOKEN is the token that was expanded
+ * into S; it is saved and used to prevent infinite recursive expansion.
+ */
+static void
+push_string (s, expand, ap)
+     char *s;
+     int expand;
+     alias_t *ap;
+{
+  STRING_SAVER *temp = (STRING_SAVER *)xmalloc (sizeof (STRING_SAVER));
+
+  temp->expand_alias = expand;
+  temp->saved_line = shell_input_line;
+  temp->saved_line_size = shell_input_line_size;
+  temp->saved_line_index = shell_input_line_index;
+  temp->saved_line_terminator = shell_input_line_terminator;
+#if defined (ALIAS)
+  temp->expander = ap;
+#endif
+  temp->next = pushed_string_list;
+  pushed_string_list = temp;
+
+#if defined (ALIAS)
+  if (ap)
+    ap->flags |= AL_BEINGEXPANDED;
+#endif
+
+  shell_input_line = s;
+  shell_input_line_size = strlen (s);
+  shell_input_line_index = 0;
+  shell_input_line_terminator = '\0';
+#if 0
+  parser_state &= ~PST_ALEXPNEXT;      /* XXX */
+#endif
+
+  set_line_mbstate ();
+}
+
+/*
+ * Make the top of the pushed_string stack be the current shell input.
+ * Only called when there is something on the stack.  Called from shell_getc
+ * when it thinks it has consumed the string generated by an alias expansion
+ * and needs to return to the original input line.
+ */
+static void
+pop_string ()
+{
+  STRING_SAVER *t;
+
+  FREE (shell_input_line);
+  shell_input_line = pushed_string_list->saved_line;
+  shell_input_line_index = pushed_string_list->saved_line_index;
+  shell_input_line_size = pushed_string_list->saved_line_size;
+  shell_input_line_terminator = pushed_string_list->saved_line_terminator;
+
+  if (pushed_string_list->expand_alias)
+    parser_state |= PST_ALEXPNEXT;
+  else
+    parser_state &= ~PST_ALEXPNEXT;
+
+  t = pushed_string_list;
+  pushed_string_list = pushed_string_list->next;
+
+#if defined (ALIAS)
+  if (t->expander)
+    t->expander->flags &= ~AL_BEINGEXPANDED;
+#endif
+
+  free ((char *)t);
+
+  set_line_mbstate ();
+}
+
+static void
+free_string_list ()
+{
+  register STRING_SAVER *t, *t1;
+
+  for (t = pushed_string_list; t; )
+    {
+      t1 = t->next;
+      FREE (t->saved_line);
+#if defined (ALIAS)
+      if (t->expander)
+       t->expander->flags &= ~AL_BEINGEXPANDED;
+#endif
+      free ((char *)t);
+      t = t1;
+    }
+  pushed_string_list = (STRING_SAVER *)NULL;
+}
+
+#endif /* ALIAS || DPAREN_ARITHMETIC */
+
+void
+free_pushed_string_input ()
+{
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+  free_string_list ();
+#endif
+}
+
+/* Return a line of text, taken from wherever yylex () reads input.
+   If there is no more input, then we return NULL.  If REMOVE_QUOTED_NEWLINE
+   is non-zero, we remove unquoted \<newline> pairs.  This is used by
+   read_secondary_line to read here documents. */
+static char *
+read_a_line (remove_quoted_newline)
+     int remove_quoted_newline;
+{
+  static char *line_buffer = (char *)NULL;
+  static int buffer_size = 0;
+  int indx = 0, c, peekc, pass_next;
+
+#if defined (READLINE)
+  if (no_line_editing && SHOULD_PROMPT ())
+#else
+  if (SHOULD_PROMPT ())
+#endif
+    print_prompt ();
+
+  pass_next = 0;
+  while (1)
+    {
+      c = yy_getc ();
+
+      /* Allow immediate exit if interrupted during input. */
+      QUIT;
+
+      /* Ignore null bytes in input. */
+      if (c == 0)
+       {
+#if 0
+         internal_warning ("read_a_line: ignored null byte in input");
+#endif
+         continue;
+       }
+
+      /* If there is no more input, then we return NULL. */
+      if (c == EOF)
+       {
+         if (interactive && bash_input.type == st_stream)
+           clearerr (stdin);
+         if (indx == 0)
+           return ((char *)NULL);
+         c = '\n';
+       }
+
+      /* `+2' in case the final character in the buffer is a newline. */
+      RESIZE_MALLOCED_BUFFER (line_buffer, indx, 2, buffer_size, 128);
+
+      /* IF REMOVE_QUOTED_NEWLINES is non-zero, we are reading a
+        here document with an unquoted delimiter.  In this case,
+        the line will be expanded as if it were in double quotes.
+        We allow a backslash to escape the next character, but we
+        need to treat the backslash specially only if a backslash
+        quoting a backslash-newline pair appears in the line. */
+      if (pass_next)
+       {
+         line_buffer[indx++] = c;
+         pass_next = 0;
+       }
+      else if (c == '\\' && remove_quoted_newline)
+       {
+         peekc = yy_getc ();
+         if (peekc == '\n')
+           {
+             line_number++;
+             continue; /* Make the unquoted \<newline> pair disappear. */
+           }
+         else
+           {
+             yy_ungetc (peekc);
+             pass_next = 1;
+             line_buffer[indx++] = c;          /* Preserve the backslash. */
+           }
+       }
+      else
+       line_buffer[indx++] = c;
+
+      if (c == '\n')
+       {
+         line_buffer[indx] = '\0';
+         return (line_buffer);
+       }
+    }
+}
+
+/* Return a line as in read_a_line (), but insure that the prompt is
+   the secondary prompt.  This is used to read the lines of a here
+   document.  REMOVE_QUOTED_NEWLINE is non-zero if we should remove
+   newlines quoted with backslashes while reading the line.  It is
+   non-zero unless the delimiter of the here document was quoted. */
+char *
+read_secondary_line (remove_quoted_newline)
+     int remove_quoted_newline;
+{
+  prompt_string_pointer = &ps2_prompt;
+  if (SHOULD_PROMPT())
+    prompt_again ();
+  return (read_a_line (remove_quoted_newline));
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*                             YYLEX ()                            */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Reserved words.  These are only recognized as the first word of a
+   command. */
+STRING_INT_ALIST word_token_alist[] = {
+  { "if", IF },
+  { "then", THEN },
+  { "else", ELSE },
+  { "elif", ELIF },
+  { "fi", FI },
+  { "case", CASE },
+  { "esac", ESAC },
+  { "for", FOR },
+#if defined (SELECT_COMMAND)
+  { "select", SELECT },
+#endif
+  { "while", WHILE },
+  { "until", UNTIL },
+  { "do", DO },
+  { "done", DONE },
+  { "in", IN },
+  { "function", FUNCTION },
+#if defined (COMMAND_TIMING)
+  { "time", TIME },
+#endif
+  { "{", '{' },
+  { "}", '}' },
+  { "!", BANG },
+#if defined (COND_COMMAND)
+  { "[[", COND_START },
+  { "]]", COND_END },
+#endif
+  { (char *)NULL, 0}
+};
+
+/* other tokens that can be returned by read_token() */
+STRING_INT_ALIST other_token_alist[] = {
+  /* Multiple-character tokens with special values */
+  { "-p", TIMEOPT },
+  { "&&", AND_AND },
+  { "||", OR_OR },
+  { ">>", GREATER_GREATER },
+  { "<<", LESS_LESS },
+  { "<&", LESS_AND },
+  { ">&", GREATER_AND },
+  { ";;", SEMI_SEMI },
+  { "<<-", LESS_LESS_MINUS },
+  { "<<<", LESS_LESS_LESS },
+  { "&>", AND_GREATER },
+  { "<>", LESS_GREATER },
+  { ">|", GREATER_BAR },
+  { "EOF", yacc_EOF },
+  /* Tokens whose value is the character itself */
+  { ">", '>' },
+  { "<", '<' },
+  { "-", '-' },
+  { "{", '{' },
+  { "}", '}' },
+  { ";", ';' },
+  { "(", '(' },
+  { ")", ')' },
+  { "|", '|' },
+  { "&", '&' },
+  { "newline", '\n' },
+  { (char *)NULL, 0}
+};
+
+/* others not listed here:
+       WORD                    look at yylval.word
+       ASSIGNMENT_WORD         look at yylval.word
+       NUMBER                  look at yylval.number
+       ARITH_CMD               look at yylval.word_list
+       ARITH_FOR_EXPRS         look at yylval.word_list
+       COND_CMD                look at yylval.command
+*/
+
+/* These are used by read_token_word, but appear up here so that shell_getc
+   can use them to decide when to add otherwise blank lines to the history. */
+
+/* The primary delimiter stack. */
+struct dstack dstack = {  (char *)NULL, 0, 0 };
+
+/* A temporary delimiter stack to be used when decoding prompt strings.
+   This is needed because command substitutions in prompt strings (e.g., PS2)
+   can screw up the parser's quoting state. */
+static struct dstack temp_dstack = { (char *)NULL, 0, 0 };
+
+/* Macro for accessing the top delimiter on the stack.  Returns the
+   delimiter or zero if none. */
+#define current_delimiter(ds) \
+  (ds.delimiter_depth ? ds.delimiters[ds.delimiter_depth - 1] : 0)
+
+#define push_delimiter(ds, character) \
+  do \
+    { \
+      if (ds.delimiter_depth + 2 > ds.delimiter_space) \
+       ds.delimiters = (char *)xrealloc \
+         (ds.delimiters, (ds.delimiter_space += 10) * sizeof (char)); \
+      ds.delimiters[ds.delimiter_depth] = character; \
+      ds.delimiter_depth++; \
+    } \
+  while (0)
+
+#define pop_delimiter(ds)      ds.delimiter_depth--
+
+/* Return the next shell input character.  This always reads characters
+   from shell_input_line; when that line is exhausted, it is time to
+   read the next line.  This is called by read_token when the shell is
+   processing normal command input. */
+
+/* This implements one-character lookahead/lookbehind across physical input
+   lines, to avoid something being lost because it's pushed back with
+   shell_ungetc when we're at the start of a line. */
+static int eol_ungetc_lookahead = 0;
+
+static int
+shell_getc (remove_quoted_newline)
+     int remove_quoted_newline;
+{
+  register int i;
+  int c;
+  unsigned char uc;
+  static int mustpop = 0;
+
+  QUIT;
+
+  if (eol_ungetc_lookahead)
+    {
+      c = eol_ungetc_lookahead;
+      eol_ungetc_lookahead = 0;
+      return (c);
+    }
+
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+  /* If shell_input_line[shell_input_line_index] == 0, but there is
+     something on the pushed list of strings, then we don't want to go
+     off and get another line.  We let the code down below handle it. */
+
+  if (!shell_input_line || ((!shell_input_line[shell_input_line_index]) &&
+                           (pushed_string_list == (STRING_SAVER *)NULL)))
+#else /* !ALIAS && !DPAREN_ARITHMETIC */
+  if (!shell_input_line || !shell_input_line[shell_input_line_index])
+#endif /* !ALIAS && !DPAREN_ARITHMETIC */
+    {
+      line_number++;
+
+    restart_read:
+
+      /* Allow immediate exit if interrupted during input. */
+      QUIT;
+
+      i = 0;
+      shell_input_line_terminator = 0;
+
+      /* If the shell is interatctive, but not currently printing a prompt
+         (interactive_shell && interactive == 0), we don't want to print
+         notifies or cleanup the jobs -- we want to defer it until we do
+         print the next prompt. */
+      if (interactive_shell == 0 || SHOULD_PROMPT())
+       {
+#if defined (JOB_CONTROL)
+      /* This can cause a problem when reading a command as the result
+        of a trap, when the trap is called from flush_child.  This call
+        had better not cause jobs to disappear from the job table in
+        that case, or we will have big trouble. */
+         notify_and_cleanup ();
+#else /* !JOB_CONTROL */
+         cleanup_dead_jobs ();
+#endif /* !JOB_CONTROL */
+       }
+
+#if defined (READLINE)
+      if (no_line_editing && SHOULD_PROMPT())
+#else
+      if (SHOULD_PROMPT())
+#endif
+       print_prompt ();
+
+      if (bash_input.type == st_stream)
+       clearerr (stdin);
+
+      while (1)
+       {
+         c = yy_getc ();
+
+         /* Allow immediate exit if interrupted during input. */
+         QUIT;
+
+         if (c == '\0')
+           {
+#if 0
+             internal_warning ("shell_getc: ignored null byte in input");
+#endif
+             continue;
+           }
+
+         RESIZE_MALLOCED_BUFFER (shell_input_line, i, 2, shell_input_line_size, 256);
+
+         if (c == EOF)
+           {
+             if (bash_input.type == st_stream)
+               clearerr (stdin);
+
+             if (i == 0)
+               shell_input_line_terminator = EOF;
+
+             shell_input_line[i] = '\0';
+             break;
+           }
+
+         shell_input_line[i++] = c;
+
+         if (c == '\n')
+           {
+             shell_input_line[--i] = '\0';
+             current_command_line_count++;
+             break;
+           }
+       }
+
+      shell_input_line_index = 0;
+      shell_input_line_len = i;                /* == strlen (shell_input_line) */
+
+      set_line_mbstate ();
+
+#if defined (HISTORY)
+      if (remember_on_history && shell_input_line && shell_input_line[0])
+       {
+         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;
+#  endif
+         expansions = pre_process_line (shell_input_line, 1, 1);
+#  if defined (BANG_HISTORY)
+         history_expansion_inhibited = old_hist;
+#  endif
+         if (expansions != shell_input_line)
+           {
+             free (shell_input_line);
+             shell_input_line = expansions;
+             shell_input_line_len = shell_input_line ?
+                                       strlen (shell_input_line) : 0;
+             if (!shell_input_line_len)
+               current_command_line_count--;
+
+             /* We have to force the xrealloc below because we don't know
+                the true allocated size of shell_input_line anymore. */
+             shell_input_line_size = shell_input_line_len;
+
+             set_line_mbstate ();
+           }
+       }
+      /* Try to do something intelligent with blank lines encountered while
+        entering multi-line commands.  XXX - this is grotesque */
+      else if (remember_on_history && shell_input_line &&
+              shell_input_line[0] == '\0' &&
+              current_command_line_count > 1)
+       {
+         if (current_delimiter (dstack))
+           /* We know shell_input_line[0] == 0 and we're reading some sort of
+              quoted string.  This means we've got a line consisting of only
+              a newline in a quoted string.  We want to make sure this line
+              gets added to the history. */
+           maybe_add_history (shell_input_line);
+         else
+           {
+             char *hdcs;
+             hdcs = history_delimiting_chars ();
+             if (hdcs && hdcs[0] == ';')
+               maybe_add_history (shell_input_line);
+           }
+       }
+
+#endif /* HISTORY */
+
+      if (shell_input_line)
+       {
+         /* Lines that signify the end of the shell's input should not be
+            echoed. */
+         if (echo_input_at_read && (shell_input_line[0] ||
+                                    shell_input_line_terminator != EOF))
+           fprintf (stderr, "%s\n", shell_input_line);
+       }
+      else
+       {
+         shell_input_line_size = 0;
+         prompt_string_pointer = &current_prompt_string;
+         if (SHOULD_PROMPT ())
+           prompt_again ();
+         goto restart_read;
+       }
+
+      /* Add the newline to the end of this string, iff the string does
+        not already end in an EOF character.  */
+      if (shell_input_line_terminator != EOF)
+       {
+         if (shell_input_line_len + 3 > shell_input_line_size)
+           shell_input_line = (char *)xrealloc (shell_input_line,
+                                       1 + (shell_input_line_size += 2));
+
+         shell_input_line[shell_input_line_len] = '\n';
+         shell_input_line[shell_input_line_len + 1] = '\0';
+
+         set_line_mbstate ();
+       }
+    }
+
+  uc = shell_input_line[shell_input_line_index];
+
+  if (uc)
+    shell_input_line_index++;
+
+  if MBTEST(uc == '\\' && remove_quoted_newline && shell_input_line[shell_input_line_index] == '\n')
+    {
+       if (SHOULD_PROMPT ())
+         prompt_again ();
+       line_number++;
+       goto restart_read;
+    }
+
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+  /* If UC is NULL, we have reached the end of the current input string.  If
+     pushed_string_list is non-empty, it's time to pop to the previous string
+     because we have fully consumed the result of the last alias expansion.
+     Do it transparently; just return the next character of the string popped
+     to. */
+  if (!uc && (pushed_string_list != (STRING_SAVER *)NULL))
+    {
+      pop_string ();
+      uc = shell_input_line[shell_input_line_index];
+      if (uc)
+       shell_input_line_index++;
+    }
+#endif /* ALIAS || DPAREN_ARITHMETIC */
+
+  if (!uc && shell_input_line_terminator == EOF)
+    return ((shell_input_line_index != 0) ? '\n' : EOF);
+
+  return (uc);
+}
+
+/* Put C back into the input for the shell.  This might need changes for
+   HANDLE_MULTIBYTE around EOLs.  Since we (currently) never push back a
+   character different than we read, shell_input_line_property doesn't need
+   to change when manipulating shell_input_line.  The define for
+   last_shell_getc_is_singlebyte should take care of it, though. */
+static void
+shell_ungetc (c)
+     int c;
+{
+  if (shell_input_line && shell_input_line_index)
+    shell_input_line[--shell_input_line_index] = c;
+  else
+    eol_ungetc_lookahead = c;
+}
+
+#ifdef INCLUDE_UNUSED
+/* Back the input pointer up by one, effectively `ungetting' a character. */
+static void
+shell_ungetchar ()
+{
+  if (shell_input_line && shell_input_line_index)
+    shell_input_line_index--;
+}
+#endif
+
+/* Discard input until CHARACTER is seen, then push that character back
+   onto the input stream. */
+static void
+discard_until (character)
+     int character;
+{
+  int c;
+
+  while ((c = shell_getc (0)) != EOF && c != character)
+    ;
+
+  if (c != EOF)
+    shell_ungetc (c);
+}
+
+void
+execute_prompt_command (command)
+     char *command;
+{
+  char *last_lastarg;
+  sh_parser_state_t ps;
+
+  save_parser_state (&ps);
+  last_lastarg = get_string_value ("_");
+  if (last_lastarg)
+    last_lastarg = savestring (last_lastarg);
+
+  parse_and_execute (savestring (command), "PROMPT_COMMAND", SEVAL_NONINT|SEVAL_NOHIST);
+
+  restore_parser_state (&ps);
+  bind_variable ("_", last_lastarg);
+  FREE (last_lastarg);
+
+  if (token_to_read == '\n')   /* reset_parser was called */
+    token_to_read = 0;
+}
+
+/* Place to remember the token.  We try to keep the buffer
+   at a reasonable size, but it can grow. */
+static char *token = (char *)NULL;
+
+/* Current size of the token buffer. */
+static int token_buffer_size;
+
+/* Command to read_token () explaining what we want it to do. */
+#define READ 0
+#define RESET 1
+#define prompt_is_ps1 \
+      (!prompt_string_pointer || prompt_string_pointer == &ps1_prompt)
+
+/* Function for yyparse to call.  yylex keeps track of
+   the last two tokens read, and calls read_token.  */
+static int
+yylex ()
+{
+  if (interactive && (current_token == 0 || current_token == '\n'))
+    {
+      /* Before we print a prompt, we might have to check mailboxes.
+        We do this only if it is time to do so. Notice that only here
+        is the mail alarm reset; nothing takes place in check_mail ()
+        except the checking of mail.  Please don't change this. */
+      if (prompt_is_ps1 && time_to_check_mail ())
+       {
+         check_mail ();
+         reset_mail_timer ();
+       }
+
+      /* Avoid printing a prompt if we're not going to read anything, e.g.
+        after resetting the parser with read_token (RESET). */
+      if (token_to_read == 0 && SHOULD_PROMPT ())
+       prompt_again ();
+    }
+
+  two_tokens_ago = token_before_that;
+  token_before_that = last_read_token;
+  last_read_token = current_token;
+  current_token = read_token (READ);
+  return (current_token);
+}
+
+/* When non-zero, we have read the required tokens
+   which allow ESAC to be the next one read. */
+static int esacs_needed_count;
+
+void
+gather_here_documents ()
+{
+  int r = 0;
+  while (need_here_doc)
+    {
+      make_here_document (redir_stack[r++]);
+      need_here_doc--;
+    }
+}
+
+/* When non-zero, an open-brace used to create a group is awaiting a close
+   brace partner. */
+static int open_brace_count;
+
+#define command_token_position(token) \
+  (((token) == ASSIGNMENT_WORD) || \
+   ((token) != SEMI_SEMI && reserved_word_acceptable(token)))
+
+#define assignment_acceptable(token) \
+  (command_token_position(token) && ((parser_state & PST_CASEPAT) == 0))
+
+/* Check to see if TOKEN is a reserved word and return the token
+   value if it is. */
+#define CHECK_FOR_RESERVED_WORD(tok) \
+  do { \
+    if (!dollar_present && !quoted && \
+       reserved_word_acceptable (last_read_token)) \
+      { \
+       int i; \
+       for (i = 0; word_token_alist[i].word != (char *)NULL; i++) \
+         if (STREQ (tok, word_token_alist[i].word)) \
+           { \
+             if ((parser_state & PST_CASEPAT) && (word_token_alist[i].token != ESAC)) \
+               break; \
+             if (word_token_alist[i].token == TIME && time_command_acceptable () == 0) \
+               break; \
+             if (word_token_alist[i].token == ESAC) \
+               parser_state &= ~(PST_CASEPAT|PST_CASESTMT); \
+             else if (word_token_alist[i].token == CASE) \
+               parser_state |= PST_CASESTMT; \
+             else if (word_token_alist[i].token == COND_END) \
+               parser_state &= ~(PST_CONDCMD|PST_CONDEXPR); \
+             else if (word_token_alist[i].token == COND_START) \
+               parser_state |= PST_CONDCMD; \
+             else if (word_token_alist[i].token == '{') \
+               open_brace_count++; \
+             else if (word_token_alist[i].token == '}' && open_brace_count) \
+               open_brace_count--; \
+             return (word_token_alist[i].token); \
+           } \
+      } \
+  } while (0)
+
+#if defined (ALIAS)
+
+    /* OK, we have a token.  Let's try to alias expand it, if (and only if)
+       it's eligible.
+
+       It is eligible for expansion if EXPAND_ALIASES is set, and
+       the token is unquoted and the last token read was a command
+       separator (or expand_next_token is set), and we are currently
+       processing an alias (pushed_string_list is non-empty) and this
+       token is not the same as the current or any previously
+       processed alias.
+
+       Special cases that disqualify:
+        In a pattern list in a case statement (parser_state & PST_CASEPAT). */
+
+static char *
+mk_alexpansion (s)
+     char *s;
+{
+  int l;
+  char *r;
+
+  l = strlen (s);
+  r = xmalloc (l + 2);
+  strcpy (r, s);
+  if (r[l -1] != ' ')
+    r[l++] = ' ';
+  r[l] = '\0';
+  return r;
+}
+
+static int
+alias_expand_token (tokstr)
+     char *tokstr;
+{
+  char *expanded;
+  alias_t *ap;
+
+  if (((parser_state & PST_ALEXPNEXT) || command_token_position (last_read_token)) &&
+       (parser_state & PST_CASEPAT) == 0)
+    {
+      ap = find_alias (tokstr);
+
+      /* Currently expanding this token. */
+      if (ap && (ap->flags & AL_BEINGEXPANDED))
+       return (NO_EXPANSION);
+
+      /* mk_alexpansion puts an extra space on the end of the alias expansion,
+         so the lookahead by the parser works right.  If this gets changed,
+         make sure the code in shell_getc that deals with reaching the end of
+         an expanded alias is changed with it. */
+      expanded = ap ? mk_alexpansion (ap->value) : (char *)NULL;
+
+      if (expanded)
+       {
+         push_string (expanded, ap->flags & AL_EXPANDNEXT, ap);
+         return (RE_READ_TOKEN);
+       }
+      else
+       /* This is an eligible token that does not have an expansion. */
+       return (NO_EXPANSION);
+    }
+  return (NO_EXPANSION);
+}
+#endif /* ALIAS */
+
+static int
+time_command_acceptable ()
+{
+#if defined (COMMAND_TIMING)
+  switch (last_read_token)
+    {
+    case 0:
+    case ';':
+    case '\n':
+    case AND_AND:
+    case OR_OR:
+    case '&':
+    case DO:
+    case THEN:
+    case ELSE:
+    case '{':          /* } */
+    case '(':          /* ) */
+      return 1;
+    default:
+      return 0;
+    }
+#else
+  return 0;
+#endif /* COMMAND_TIMING */
+}
+
+/* Handle special cases of token recognition:
+       IN is recognized if the last token was WORD and the token
+       before that was FOR or CASE or SELECT.
+
+       DO is recognized if the last token was WORD and the token
+       before that was FOR or SELECT.
+
+       ESAC is recognized if the last token caused `esacs_needed_count'
+       to be set
+
+       `{' is recognized if the last token as WORD and the token
+       before that was FUNCTION, or if we just parsed an arithmetic
+       `for' command.
+
+       `}' is recognized if there is an unclosed `{' present.
+
+       `-p' is returned as TIMEOPT if the last read token was TIME.
+
+       ']]' is returned as COND_END if the parser is currently parsing
+       a conditional expression ((parser_state & PST_CONDEXPR) != 0)
+
+       `time' is returned as TIME if and only if it is immediately
+       preceded by one of `;', `\n', `||', `&&', or `&'.
+*/
+
+static int
+special_case_tokens (tokstr)
+     char *tokstr;
+{
+  if ((last_read_token == WORD) &&
+#if defined (SELECT_COMMAND)
+      ((token_before_that == FOR) || (token_before_that == CASE) || (token_before_that == SELECT)) &&
+#else
+      ((token_before_that == FOR) || (token_before_that == CASE)) &&
+#endif
+      (tokstr[0] == 'i' && tokstr[1] == 'n' && tokstr[2] == 0))
+    {
+      if (token_before_that == CASE)
+       {
+         parser_state |= PST_CASEPAT;
+         esacs_needed_count++;
+       }
+      return (IN);
+    }
+
+  if (last_read_token == WORD &&
+#if defined (SELECT_COMMAND)
+      (token_before_that == FOR || token_before_that == SELECT) &&
+#else
+      (token_before_that == FOR) &&
+#endif
+      (tokstr[0] == 'd' && tokstr[1] == 'o' && tokstr[2] == '\0'))
+    return (DO);
+
+  /* Ditto for ESAC in the CASE case.
+     Specifically, this handles "case word in esac", which is a legal
+     construct, certainly because someone will pass an empty arg to the
+     case construct, and we don't want it to barf.  Of course, we should
+     insist that the case construct has at least one pattern in it, but
+     the designers disagree. */
+  if (esacs_needed_count)
+    {
+      esacs_needed_count--;
+      if (STREQ (tokstr, "esac"))
+       {
+         parser_state &= ~PST_CASEPAT;
+         return (ESAC);
+       }
+    }
+
+  /* The start of a shell function definition. */
+  if (parser_state & PST_ALLOWOPNBRC)
+    {
+      parser_state &= ~PST_ALLOWOPNBRC;
+      if (tokstr[0] == '{' && tokstr[1] == '\0')               /* } */
+       {
+         open_brace_count++;
+         function_bstart = line_number;
+         return ('{');                                 /* } */
+       }
+    }
+
+  /* We allow a `do' after a for ((...)) without an intervening
+     list_terminator */
+  if (last_read_token == ARITH_FOR_EXPRS && tokstr[0] == 'd' && tokstr[1] == 'o' && !tokstr[2])
+    return (DO);
+  if (last_read_token == ARITH_FOR_EXPRS && tokstr[0] == '{' && tokstr[1] == '\0')     /* } */
+    {
+      open_brace_count++;
+      return ('{');                    /* } */
+    }
+
+  if (open_brace_count && reserved_word_acceptable (last_read_token) && tokstr[0] == '}' && !tokstr[1])
+    {
+      open_brace_count--;              /* { */
+      return ('}');
+    }
+
+#if defined (COMMAND_TIMING)
+  /* Handle -p after `time'. */
+  if (last_read_token == TIME && tokstr[0] == '-' && tokstr[1] == 'p' && !tokstr[2])
+    return (TIMEOPT);
+#endif
+
+#if 0
+#if defined (COMMAND_TIMING)
+  if (STREQ (token, "time") && ((parser_state & PST_CASEPAT) == 0) && time_command_acceptable ())
+    return (TIME);
+#endif /* COMMAND_TIMING */
+#endif
+
+#if defined (COND_COMMAND) /* [[ */
+  if ((parser_state & PST_CONDEXPR) && tokstr[0] == ']' && tokstr[1] == ']' && tokstr[2] == '\0')
+    return (COND_END);
+#endif
+
+  return (-1);
+}
+
+/* Called from shell.c when Control-C is typed at top level.  Or
+   by the error rule at top level. */
+void
+reset_parser ()
+{
+  dstack.delimiter_depth = 0;  /* No delimiters found so far. */
+  open_brace_count = 0;
+
+  parser_state = 0;
+
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+  if (pushed_string_list)
+    free_string_list ();
+#endif /* ALIAS || DPAREN_ARITHMETIC */
+
+  if (shell_input_line)
+    {
+      free (shell_input_line);
+      shell_input_line = (char *)NULL;
+      shell_input_line_size = shell_input_line_index = 0;
+    }
+
+  FREE (word_desc_to_read);
+  word_desc_to_read = (WORD_DESC *)NULL;
+
+  last_read_token = '\n';
+  token_to_read = '\n';
+}
+
+/* Read the next token.  Command can be READ (normal operation) or
+   RESET (to normalize state). */
+static int
+read_token (command)
+     int command;
+{
+  int character;               /* Current character. */
+  int peek_char;               /* Temporary look-ahead character. */
+  int result;                  /* The thing to return. */
+
+  if (command == RESET)
+    {
+      reset_parser ();
+      return ('\n');
+    }
+
+  if (token_to_read)
+    {
+      result = token_to_read;
+      if (token_to_read == WORD || token_to_read == ASSIGNMENT_WORD)
+       {
+         yylval.word = word_desc_to_read;
+         word_desc_to_read = (WORD_DESC *)NULL;
+       }
+      token_to_read = 0;
+      return (result);
+    }
+
+#if defined (COND_COMMAND)
+  if ((parser_state & (PST_CONDCMD|PST_CONDEXPR)) == PST_CONDCMD)
+    {
+      cond_lineno = line_number;
+      parser_state |= PST_CONDEXPR;
+      yylval.command = parse_cond_command ();
+      if (cond_token != COND_END)
+       {
+         cond_error ();
+         return (-1);
+       }
+      token_to_read = COND_END;
+      parser_state &= ~(PST_CONDEXPR|PST_CONDCMD);
+      return (COND_CMD);
+    }
+#endif
+
+#if defined (ALIAS)
+  /* This is a place to jump back to once we have successfully expanded a
+     token with an alias and pushed the string with push_string () */
+ re_read_token:
+#endif /* ALIAS */
+
+  /* Read a single word from input.  Start by skipping blanks. */
+  while ((character = shell_getc (1)) != EOF && whitespace (character))
+    ;
+
+  if (character == EOF)
+    {
+      EOF_Reached = 1;
+      return (yacc_EOF);
+    }
+
+  if MBTEST(character == '#' && (!interactive || interactive_comments))
+    {
+      /* A comment.  Discard until EOL or EOF, and then return a newline. */
+      discard_until ('\n');
+      shell_getc (0);
+      character = '\n';        /* this will take the next if statement and return. */
+    }
+
+  if (character == '\n')
+    {
+      /* If we're about to return an unquoted newline, we can go and collect
+        the text of any pending here document. */
+      if (need_here_doc)
+       gather_here_documents ();
+
+#if defined (ALIAS)
+      parser_state &= ~PST_ALEXPNEXT;
+#endif /* ALIAS */
+
+      parser_state &= ~PST_ASSIGNOK;
+
+      return (character);
+    }
+
+  /* Shell meta-characters. */
+  if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
+    {
+#if defined (ALIAS)
+      /* Turn off alias tokenization iff this character sequence would
+        not leave us ready to read a command. */
+      if (character == '<' || character == '>')
+       parser_state &= ~PST_ALEXPNEXT;
+#endif /* ALIAS */
+
+      parser_state &= ~PST_ASSIGNOK;
+
+      peek_char = shell_getc (1);
+      if (character == peek_char)
+       {
+         switch (character)
+           {
+           case '<':
+             /* If '<' then we could be at "<<" or at "<<-".  We have to
+                look ahead one more character. */
+             peek_char = shell_getc (1);
+             if (peek_char == '-')
+               return (LESS_LESS_MINUS);
+             else if (peek_char == '<')
+               return (LESS_LESS_LESS);
+             else
+               {
+                 shell_ungetc (peek_char);
+                 return (LESS_LESS);
+               }
+
+           case '>':
+             return (GREATER_GREATER);
+
+           case ';':
+             parser_state |= PST_CASEPAT;
+#if defined (ALIAS)
+             parser_state &= ~PST_ALEXPNEXT;
+#endif /* ALIAS */
+
+             return (SEMI_SEMI);
+
+           case '&':
+             return (AND_AND);
+
+           case '|':
+             return (OR_OR);
+
+#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND)
+           case '(':           /* ) */
+             result = parse_dparen (character);
+             if (result == -2)
+               break;
+             else
+               return result;
+#endif
+           }
+       }
+      else if MBTEST(character == '<' && peek_char == '&')
+       return (LESS_AND);
+      else if MBTEST(character == '>' && peek_char == '&')
+       return (GREATER_AND);
+      else if MBTEST(character == '<' && peek_char == '>')
+       return (LESS_GREATER);
+      else if MBTEST(character == '>' && peek_char == '|')
+       return (GREATER_BAR);
+      else if MBTEST(peek_char == '>' && character == '&')
+       return (AND_GREATER);
+
+      shell_ungetc (peek_char);
+
+      /* If we look like we are reading the start of a function
+        definition, then let the reader know about it so that
+        we will do the right thing with `{'. */
+      if MBTEST(character == ')' && last_read_token == '(' && token_before_that == WORD)
+       {
+         parser_state |= PST_ALLOWOPNBRC;
+#if defined (ALIAS)
+         parser_state &= ~PST_ALEXPNEXT;
+#endif /* ALIAS */
+         function_dstart = line_number;
+       }
+
+      /* case pattern lists may be preceded by an optional left paren.  If
+        we're not trying to parse a case pattern list, the left paren
+        indicates a subshell. */
+      if MBTEST(character == '(' && (parser_state & PST_CASEPAT) == 0) /* ) */
+       parser_state |= PST_SUBSHELL;
+      /*(*/
+      else if MBTEST((parser_state & PST_CASEPAT) && character == ')')
+       parser_state &= ~PST_CASEPAT;
+      /*(*/
+      else if MBTEST((parser_state & PST_SUBSHELL) && character == ')')
+       parser_state &= ~PST_SUBSHELL;
+
+#if defined (PROCESS_SUBSTITUTION)
+      /* Check for the constructs which introduce process substitution.
+        Shells running in `posix mode' don't do process substitution. */
+      if MBTEST(posixly_correct || ((character != '>' && character != '<') || peek_char != '(')) /*)*/
+#endif /* PROCESS_SUBSTITUTION */
+       return (character);
+    }
+
+  /* Hack <&- (close stdin) case.  Also <&N- (dup and close). */
+  if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
+    return (character);
+
+  /* Okay, if we got this far, we have to read a word.  Read one,
+     and then check it against the known ones. */
+  result = read_token_word (character);
+#if defined (ALIAS)
+  if (result == RE_READ_TOKEN)
+    goto re_read_token;
+#endif
+  return result;
+}
+
+/*
+ * Match a $(...) or other grouping construct.  This has to handle embedded
+ * quoted strings ('', ``, "") and nested constructs.  It also must handle
+ * reprompting the user, if necessary, after reading a newline (unless the
+ * P_NONL flag is passed), and returning correct error values if it reads
+ * EOF.
+ */
+#define P_FIRSTCLOSE   0x01
+#define P_ALLOWESC     0x02
+#define P_DQUOTE       0x04
+
+static char matched_pair_error;
+static char *
+parse_matched_pair (qc, open, close, lenp, flags)
+     int qc;   /* `"' if this construct is within double quotes */
+     int open, close;
+     int *lenp, flags;
+{
+  int count, ch, was_dollar;
+  int pass_next_character, nestlen, ttranslen, start_lineno;
+  char *ret, *nestret, *ttrans;
+  int retind, retsize, rflags;
+
+  count = 1;
+  pass_next_character = was_dollar = 0;
+
+  /* RFLAGS is the set of flags we want to pass to recursive calls. */
+  rflags = (qc == '"') ? P_DQUOTE : (flags & P_DQUOTE);
+
+  ret = (char *)xmalloc (retsize = 64);
+  retind = 0;
+
+  start_lineno = line_number;
+  while (count)
+    {
+      ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0);
+      if (ch == EOF)
+       {
+         free (ret);
+         parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close);
+         EOF_Reached = 1;      /* XXX */
+         return (&matched_pair_error);
+       }
+
+      /* Possible reprompting. */
+      if (ch == '\n' && SHOULD_PROMPT ())
+       prompt_again ();
+
+      if (pass_next_character)         /* last char was backslash */
+       {
+         pass_next_character = 0;
+         if (qc != '\'' && ch == '\n') /* double-quoted \<newline> disappears. */
+           {
+             if (retind > 0) retind--; /* swallow previously-added backslash */
+             continue;
+           }
+
+         RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
+         if MBTEST(ch == CTLESC || ch == CTLNUL)
+           ret[retind++] = CTLESC;
+         ret[retind++] = ch;
+         continue;
+       }
+      else if MBTEST(ch == CTLESC || ch == CTLNUL)     /* special shell escapes */
+       {
+         RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
+         ret[retind++] = CTLESC;
+         ret[retind++] = ch;
+         continue;
+       }
+      else if MBTEST(ch == close)              /* ending delimiter */
+       count--;
+#if 1
+      /* handle nested ${...} specially. */
+      else if MBTEST(open != close && was_dollar && open == '{' && ch == open) /* } */
+       count++;
+#endif
+      else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && ch == open)      /* nested begin */
+       count++;
+
+      /* Add this character. */
+      RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64);
+      ret[retind++] = ch;
+
+      if (open == '\'')                        /* '' inside grouping construct */
+       {
+         if MBTEST((flags & P_ALLOWESC) && ch == '\\')
+           pass_next_character++;
+         continue;
+       }
+
+      if MBTEST(ch == '\\')                    /* backslashes */
+       pass_next_character++;
+
+      if (open != close)               /* a grouping construct */
+       {
+         if MBTEST(shellquote (ch))
+           {
+             /* '', ``, or "" inside $(...) or other grouping construct. */
+             push_delimiter (dstack, ch);
+             if MBTEST(was_dollar && ch == '\'')       /* $'...' inside group */
+               nestret = parse_matched_pair (ch, ch, ch, &nestlen, P_ALLOWESC|rflags);
+             else
+               nestret = parse_matched_pair (ch, ch, ch, &nestlen, rflags);
+             pop_delimiter (dstack);
+             if (nestret == &matched_pair_error)
+               {
+                 free (ret);
+                 return &matched_pair_error;
+               }
+             if MBTEST(was_dollar && ch == '\'' && (extended_quote || (rflags & P_DQUOTE) == 0))
+               {
+                 /* Translate $'...' here. */
+                 ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen);
+                 xfree (nestret);
+                 nestret = sh_single_quote (ttrans);
+                 free (ttrans);
+                 nestlen = strlen (nestret);
+                 retind -= 2;          /* back up before the $' */
+               }
+             else if MBTEST(was_dollar && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0))
+               {
+                 /* Locale expand $"..." here. */
+                 ttrans = localeexpand (nestret, 0, nestlen - 1, start_lineno, &ttranslen);
+                 xfree (nestret);
+                 nestret = (char *)xmalloc (ttranslen + 3);
+                 nestret[0] = '"';
+                 strcpy (nestret + 1, ttrans);
+                 nestret[ttranslen + 1] = '"';
+                 nestret[ttranslen += 2] = '\0';
+                 free (ttrans);
+                 nestlen = ttranslen;
+                 retind -= 2;          /* back up before the $" */
+               }
+
+             if (nestlen)
+               {
+                 RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64);
+                 strcpy (ret + retind, nestret);
+                 retind += nestlen;
+               }
+             FREE (nestret);
+           }
+       }
+      /* Parse an old-style command substitution within double quotes as a
+        single word. */
+      /* XXX - sh and ksh93 don't do this - XXX */
+      else if MBTEST(open == '"' && ch == '`')
+       {
+         nestret = parse_matched_pair (0, '`', '`', &nestlen, rflags);
+         if (nestret == &matched_pair_error)
+           {
+             free (ret);
+             return &matched_pair_error;
+           }
+         if (nestlen)
+           {
+             RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64);
+             strcpy (ret + retind, nestret);
+             retind += nestlen;
+           }
+         FREE (nestret);
+       }
+      else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))      /* ) } ] */
+       /* check for $(), $[], or ${} inside quoted string. */
+       {
+         if (open == ch)       /* undo previous increment */
+           count--;
+         if (ch == '(')                /* ) */
+           nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags);
+         else if (ch == '{')           /* } */
+           nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
+         else if (ch == '[')           /* ] */
+           nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags);
+         if (nestret == &matched_pair_error)
+           {
+             free (ret);
+             return &matched_pair_error;
+           }
+         if (nestlen)
+           {
+             RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64);
+             strcpy (ret + retind, nestret);
+             retind += nestlen;
+           }
+         FREE (nestret);
+       }
+      was_dollar = MBTEST(ch == '$');
+    }
+
+  ret[retind] = '\0';
+  if (lenp)
+    *lenp = retind;
+  return ret;
+}
+
+#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND)
+/* Parse a double-paren construct.  It can be either an arithmetic
+   command, an arithmetic `for' command, or a nested subshell.  Returns
+   the parsed token, -1 on error, or -2 if we didn't do anything and
+   should just go on. */
+static int
+parse_dparen (c)
+     int c;
+{
+  int cmdtyp, len, sline;
+  char *wval, *wv2;
+  WORD_DESC *wd;
+
+#if defined (ARITH_FOR_COMMAND)
+  if (last_read_token == FOR)
+    {
+      arith_for_lineno = line_number;
+      cmdtyp = parse_arith_cmd (&wval, 0);
+      if (cmdtyp == 1)
+       {
+         wd = make_word (wval);
+         yylval.word_list = make_word_list (wd, (WORD_LIST *)NULL);
+         free (wval);
+         return (ARITH_FOR_EXPRS);
+       }
+      else
+       return -1;              /* ERROR */
+    }
+#endif
+
+#if defined (DPAREN_ARITHMETIC)
+  if (reserved_word_acceptable (last_read_token))
+    {
+      sline = line_number;
+#if 0
+      cmdtyp = parse_arith_cmd (&wval, 1);
+#else
+      cmdtyp = parse_arith_cmd (&wval, 0);
+#endif
+      if (cmdtyp == 1) /* arithmetic command */
+       {
+         wd = make_word (wval);
+#if 0
+         wd->flags = W_QUOTED;
+#else
+         wd->flags = W_QUOTED|W_NOSPLIT|W_NOGLOB;
+#endif
+         yylval.word_list = make_word_list (wd, (WORD_LIST *)NULL);
+         free (wval);  /* make_word copies it */
+         return (ARITH_CMD);
+       }
+      else if (cmdtyp == 0)    /* nested subshell */
+       {
+         push_string (wval, 0, (alias_t *)NULL);
+         if ((parser_state & PST_CASEPAT) == 0)
+           parser_state |= PST_SUBSHELL;
+         return (c);
+       }
+      else                     /* ERROR */
+       return -1;
+    }
+#endif
+
+  return -2;                   /* XXX */
+}
+
+/* We've seen a `(('.  Look for the matching `))'.  If we get it, return 1.
+   If not, assume it's a nested subshell for backwards compatibility and
+   return 0.  In any case, put the characters we've consumed into a locally-
+   allocated buffer and make *ep point to that buffer.  Return -1 on an
+   error, for example EOF. */
+static int
+parse_arith_cmd (ep, adddq)
+     char **ep;
+     int adddq;
+{
+  int exp_lineno, rval, c;
+  char *ttok, *tokstr;
+  int ttoklen;
+
+  exp_lineno = line_number;
+  ttok = parse_matched_pair (0, '(', ')', &ttoklen, 0);
+  rval = 1;
+  if (ttok == &matched_pair_error)
+    return -1;
+  /* Check that the next character is the closing right paren.  If
+     not, this is a syntax error. ( */
+  c = shell_getc (0);
+  if MBTEST(c != ')')
+    rval = 0;
+
+  tokstr = (char *)xmalloc (ttoklen + 4);
+
+  /* if ADDDQ != 0 then (( ... )) -> "..." */
+  if (rval == 1 && adddq)      /* arith cmd, add double quotes */
+    {
+      tokstr[0] = '"';
+      strncpy (tokstr + 1, ttok, ttoklen - 1);
+      tokstr[ttoklen] = '"';
+      tokstr[ttoklen+1] = '\0';
+    }
+  else if (rval == 1)          /* arith cmd, don't add double quotes */
+    {
+      strncpy (tokstr, ttok, ttoklen - 1);
+      tokstr[ttoklen-1] = '\0';
+    }
+  else                         /* nested subshell */
+    {
+      tokstr[0] = '(';
+      strncpy (tokstr + 1, ttok, ttoklen - 1);
+      tokstr[ttoklen] = ')';
+      tokstr[ttoklen+1] = c;
+      tokstr[ttoklen+2] = '\0';
+    }
+
+  *ep = tokstr;
+  FREE (ttok);
+  return rval;
+}
+#endif /* DPAREN_ARITHMETIC || ARITH_FOR_COMMAND */
+
+#if defined (COND_COMMAND)
+static void
+cond_error ()
+{
+  char *etext;
+
+  if (EOF_Reached && cond_token != COND_ERROR)         /* [[ */
+    parser_error (cond_lineno, _("unexpected EOF while looking for `]]'"));
+  else if (cond_token != COND_ERROR)
+    {
+      if (etext = error_token_from_token (cond_token))
+       {
+         parser_error (cond_lineno, _("syntax error in conditional expression: unexpected token `%s'"), etext);
+         free (etext);
+       }
+      else
+       parser_error (cond_lineno, _("syntax error in conditional expression"));
+    }
+}
+
+static COND_COM *
+cond_expr ()
+{
+  return (cond_or ());  
+}
+
+static COND_COM *
+cond_or ()
+{
+  COND_COM *l, *r;
+
+  l = cond_and ();
+  if (cond_token == OR_OR)
+    {
+      r = cond_or ();
+      l = make_cond_node (COND_OR, (WORD_DESC *)NULL, l, r);
+    }
+  return l;
+}
+
+static COND_COM *
+cond_and ()
+{
+  COND_COM *l, *r;
+
+  l = cond_term ();
+  if (cond_token == AND_AND)
+    {
+      r = cond_and ();
+      l = make_cond_node (COND_AND, (WORD_DESC *)NULL, l, r);
+    }
+  return l;
+}
+
+static int
+cond_skip_newlines ()
+{
+  while ((cond_token = read_token (READ)) == '\n')
+    {
+      if (SHOULD_PROMPT ())
+       prompt_again ();
+    }
+  return (cond_token);
+}
+
+#define COND_RETURN_ERROR() \
+  do { cond_token = COND_ERROR; return ((COND_COM *)NULL); } while (0)
+
+static COND_COM *
+cond_term ()
+{
+  WORD_DESC *op;
+  COND_COM *term, *tleft, *tright;
+  int tok, lineno;
+  char *etext;
+
+  /* Read a token.  It can be a left paren, a `!', a unary operator, or a
+     word that should be the first argument of a binary operator.  Start by
+     skipping newlines, since this is a compound command. */
+  tok = cond_skip_newlines ();
+  lineno = line_number;
+  if (tok == COND_END)
+    {
+      COND_RETURN_ERROR ();
+    }
+  else if (tok == '(')
+    {
+      term = cond_expr ();
+      if (cond_token != ')')
+       {
+         if (term)
+           dispose_cond_node (term);           /* ( */
+         if (etext = error_token_from_token (cond_token))
+           {
+             parser_error (lineno, _("unexpected token `%s', expected `)'"), etext);
+             free (etext);
+           }
+         else
+           parser_error (lineno, _("expected `)'"));
+         COND_RETURN_ERROR ();
+       }
+      term = make_cond_node (COND_EXPR, (WORD_DESC *)NULL, term, (COND_COM *)NULL);
+      (void)cond_skip_newlines ();
+    }
+  else if (tok == BANG || (tok == WORD && (yylval.word->word[0] == '!' && yylval.word->word[1] == '\0')))
+    {
+      if (tok == WORD)
+       dispose_word (yylval.word);     /* not needed */
+      term = cond_term ();
+      if (term)
+       term->flags |= CMD_INVERT_RETURN;
+    }
+  else if (tok == WORD && test_unop (yylval.word->word))
+    {
+      op = yylval.word;
+      tok = read_token (READ);
+      if (tok == WORD)
+       {
+         tleft = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
+         term = make_cond_node (COND_UNARY, op, tleft, (COND_COM *)NULL);
+       }
+      else
+       {
+         dispose_word (op);
+         if (etext = error_token_from_token (tok))
+           {
+             parser_error (line_number, _("unexpected argument `%s' to conditional unary operator"), etext);
+             free (etext);
+           }
+         else
+           parser_error (line_number, _("unexpected argument to conditional unary operator"));
+         COND_RETURN_ERROR ();
+       }
+
+      (void)cond_skip_newlines ();
+    }
+  else if (tok == WORD)                /* left argument to binary operator */
+    {
+      /* lhs */
+      tleft = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
+
+      /* binop */
+      tok = read_token (READ);
+      if (tok == WORD && test_binop (yylval.word->word))
+       op = yylval.word;
+#if defined (COND_REGEXP)
+      else if (tok == WORD && STREQ (yylval.word->word,"=~"))
+       op = yylval.word;
+#endif
+      else if (tok == '<' || tok == '>')
+       op = make_word_from_token (tok);  /* ( */
+      /* There should be a check before blindly accepting the `)' that we have
+        seen the opening `('. */
+      else if (tok == COND_END || tok == AND_AND || tok == OR_OR || tok == ')')
+       {
+         /* Special case.  [[ x ]] is equivalent to [[ -n x ]], just like
+            the test command.  Similarly for [[ x && expr ]] or
+            [[ x || expr ]] or [[ (x) ]]. */
+         op = make_word ("-n");
+         term = make_cond_node (COND_UNARY, op, tleft, (COND_COM *)NULL);
+         cond_token = tok;
+         return (term);
+       }
+      else
+       {
+         if (etext = error_token_from_token (tok))
+           {
+             parser_error (line_number, _("unexpected token `%s', conditional binary operator expected"), etext);
+             free (etext);
+           }
+         else
+           parser_error (line_number, _("conditional binary operator expected"));
+         dispose_cond_node (tleft);
+         COND_RETURN_ERROR ();
+       }
+
+      /* rhs */
+      tok = read_token (READ);
+      if (tok == WORD)
+       {
+         tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
+         term = make_cond_node (COND_BINARY, op, tleft, tright);
+       }
+      else
+       {
+         if (etext = error_token_from_token (tok))
+           {
+             parser_error (line_number, _("unexpected argument `%s' to conditional binary operator"), etext);
+             free (etext);
+           }
+         else
+           parser_error (line_number, _("unexpected argument to conditional binary operator"));
+         dispose_cond_node (tleft);
+         dispose_word (op);
+         COND_RETURN_ERROR ();
+       }
+
+      (void)cond_skip_newlines ();
+    }
+  else
+    {
+      if (tok < 256)
+       parser_error (line_number, _("unexpected token `%c' in conditional command"), tok);
+      else if (etext = error_token_from_token (tok))
+       {
+         parser_error (line_number, _("unexpected token `%s' in conditional command"), etext);
+         free (etext);
+       }
+      else
+       parser_error (line_number, _("unexpected token %d in conditional command"), tok);
+      COND_RETURN_ERROR ();
+    }
+  return (term);
+}      
+
+/* This is kind of bogus -- we slip a mini recursive-descent parser in
+   here to handle the conditional statement syntax. */
+static COMMAND *
+parse_cond_command ()
+{
+  COND_COM *cexp;
+
+  cexp = cond_expr ();
+  return (make_cond_command (cexp));
+}
+#endif
+
+#if defined (ARRAY_VARS)
+/* When this is called, it's guaranteed that we don't care about anything
+   in t beyond i.  We do save and restore the chars, though. */
+static int
+token_is_assignment (t, i)
+     char *t;
+     int i;
+{
+  unsigned char c, c1;
+  int r;
+
+  c = t[i]; c1 = t[i+1];
+  t[i] = '='; t[i+1] = '\0';
+  r = assignment (t, (parser_state & PST_COMPASSIGN) != 0);
+  t[i] = c; t[i+1] = c1;
+  return r;
+}
+
+static int
+token_is_ident (t, i)
+     char *t;
+     int i;
+{
+  unsigned char c;
+  int r;
+
+  c = t[i];
+  t[i] = '\0';
+  r = legal_identifier (t);
+  t[i] = c;
+  return r;
+}
+#endif
+
+static int
+read_token_word (character)
+     int character;
+{
+  /* The value for YYLVAL when a WORD is read. */
+  WORD_DESC *the_word;
+
+  /* Index into the token that we are building. */
+  int token_index;
+
+  /* ALL_DIGITS becomes zero when we see a non-digit. */
+  int all_digit_token;
+
+  /* DOLLAR_PRESENT becomes non-zero if we see a `$'. */
+  int dollar_present;
+
+  /* QUOTED becomes non-zero if we see one of ("), ('), (`), or (\). */
+  int quoted;
+
+  /* Non-zero means to ignore the value of the next character, and just
+     to add it no matter what. */
+ int pass_next_character;
+
+  /* The current delimiting character. */
+  int cd;
+  int result, peek_char;
+  char *ttok, *ttrans;
+  int ttoklen, ttranslen;
+  intmax_t lvalue;
+
+  if (token_buffer_size < TOKEN_DEFAULT_INITIAL_SIZE)
+    token = (char *)xrealloc (token, token_buffer_size = TOKEN_DEFAULT_INITIAL_SIZE);
+
+  token_index = 0;
+  all_digit_token = DIGIT (character);
+  dollar_present = quoted = pass_next_character = 0;
+
+  for (;;)
+    {
+      if (character == EOF)
+       goto got_token;
+
+      if (pass_next_character)
+       {
+         pass_next_character = 0;
+         goto got_character;
+       }
+
+      cd = current_delimiter (dstack);
+
+      /* Handle backslashes.  Quote lots of things when not inside of
+        double-quotes, quote some things inside of double-quotes. */
+      if MBTEST(character == '\\')
+       {
+         peek_char = shell_getc (0);
+
+         /* Backslash-newline is ignored in all cases except
+            when quoted with single quotes. */
+         if (peek_char == '\n')
+           {
+             character = '\n';
+             goto next_character;
+           }
+         else
+           {
+             shell_ungetc (peek_char);
+
+             /* If the next character is to be quoted, note it now. */
+             if (cd == 0 || cd == '`' ||
+                 (cd == '"' && peek_char >= 0 && (sh_syntaxtab[peek_char] & CBSDQUOTE)))
+               pass_next_character++;
+
+             quoted = 1;
+             goto got_character;
+           }
+       }
+
+      /* Parse a matched pair of quote characters. */
+      if MBTEST(shellquote (character))
+       {
+         push_delimiter (dstack, character);
+         ttok = parse_matched_pair (character, character, character, &ttoklen, 0);
+         pop_delimiter (dstack);
+         if (ttok == &matched_pair_error)
+           return -1;          /* Bail immediately. */
+         RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+                                 token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
+         token[token_index++] = character;
+         strcpy (token + token_index, ttok);
+         token_index += ttoklen;
+         all_digit_token = 0;
+         quoted = 1;
+         dollar_present |= (character == '"' && strchr (ttok, '$') != 0);
+         FREE (ttok);
+         goto next_character;
+       }
+
+#ifdef EXTENDED_GLOB
+      /* Parse a ksh-style extended pattern matching specification. */
+      if (extended_glob && PATTERN_CHAR (character))
+       {
+         peek_char = shell_getc (1);
+         if MBTEST(peek_char == '(')           /* ) */
+           {
+             push_delimiter (dstack, peek_char);
+             ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
+             pop_delimiter (dstack);
+             if (ttok == &matched_pair_error)
+               return -1;              /* Bail immediately. */
+             RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+                                     token_buffer_size,
+                                     TOKEN_DEFAULT_GROW_SIZE);
+             token[token_index++] = character;
+             token[token_index++] = peek_char;
+             strcpy (token + token_index, ttok);
+             token_index += ttoklen;
+             FREE (ttok);
+             dollar_present = all_digit_token = 0;
+             goto next_character;
+           }
+         else
+           shell_ungetc (peek_char);
+       }
+#endif /* EXTENDED_GLOB */
+
+      /* If the delimiter character is not single quote, parse some of
+        the shell expansions that must be read as a single word. */
+      if (shellexp (character))
+       {
+         peek_char = shell_getc (1);
+         /* $(...), <(...), >(...), $((...)), ${...}, and $[...] constructs */
+         if MBTEST(peek_char == '(' || \
+               ((peek_char == '{' || peek_char == '[') && character == '$'))   /* ) ] } */
+           {
+             if (peek_char == '{')             /* } */
+               ttok = parse_matched_pair (cd, '{', '}', &ttoklen, P_FIRSTCLOSE);
+             else if (peek_char == '(')                /* ) */
+               {
+                 /* XXX - push and pop the `(' as a delimiter for use by
+                    the command-oriented-history code.  This way newlines
+                    appearing in the $(...) string get added to the
+                    history literally rather than causing a possibly-
+                    incorrect `;' to be added. ) */
+                 push_delimiter (dstack, peek_char);
+                 ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
+                 pop_delimiter (dstack);
+               }
+             else
+               ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0);
+             if (ttok == &matched_pair_error)
+               return -1;              /* Bail immediately. */
+             RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+                                     token_buffer_size,
+                                     TOKEN_DEFAULT_GROW_SIZE);
+             token[token_index++] = character;
+             token[token_index++] = peek_char;
+             strcpy (token + token_index, ttok);
+             token_index += ttoklen;
+             FREE (ttok);
+             dollar_present = 1;
+             all_digit_token = 0;
+             goto next_character;
+           }
+         /* This handles $'...' and $"..." new-style quoted strings. */
+         else if MBTEST(character == '$' && (peek_char == '\'' || peek_char == '"'))
+           {
+             int first_line;
+
+             first_line = line_number;
+             push_delimiter (dstack, peek_char);
+             ttok = parse_matched_pair (peek_char, peek_char, peek_char,
+                                        &ttoklen,
+                                        (peek_char == '\'') ? P_ALLOWESC : 0);
+             pop_delimiter (dstack);
+             if (ttok == &matched_pair_error)
+               return -1;
+             if (peek_char == '\'')
+               {
+                 ttrans = ansiexpand (ttok, 0, ttoklen - 1, &ttranslen);
+                 free (ttok);
+                 /* Insert the single quotes and correctly quote any
+                    embedded single quotes (allowed because P_ALLOWESC was
+                    passed to parse_matched_pair). */
+                 ttok = sh_single_quote (ttrans);
+                 free (ttrans);
+                 ttrans = ttok;
+                 ttranslen = strlen (ttrans);
+               }
+             else
+               {
+                 /* Try to locale-expand the converted string. */
+                 ttrans = localeexpand (ttok, 0, ttoklen - 1, first_line, &ttranslen);
+                 free (ttok);
+
+                 /* Add the double quotes back */
+                 ttok = (char *)xmalloc (ttranslen + 3);
+                 ttok[0] = '"';
+                 strcpy (ttok + 1, ttrans);
+                 ttok[ttranslen + 1] = '"';
+                 ttok[ttranslen += 2] = '\0';
+                 free (ttrans);
+                 ttrans = ttok;
+               }
+
+             RESIZE_MALLOCED_BUFFER (token, token_index, ttranslen + 2,
+                                     token_buffer_size,
+                                     TOKEN_DEFAULT_GROW_SIZE);
+             strcpy (token + token_index, ttrans);
+             token_index += ttranslen;
+             FREE (ttrans);
+             quoted = 1;
+             all_digit_token = 0;
+             goto next_character;
+           }
+         /* This could eventually be extended to recognize all of the
+            shell's single-character parameter expansions, and set flags.*/
+         else if MBTEST(character == '$' && peek_char == '$')
+           {
+             ttok = (char *)xmalloc (3);
+             ttok[0] = ttok[1] = '$';
+             ttok[2] = '\0';
+             RESIZE_MALLOCED_BUFFER (token, token_index, 3,
+                                     token_buffer_size,
+                                     TOKEN_DEFAULT_GROW_SIZE);
+             strcpy (token + token_index, ttok);
+             token_index += 2;
+             dollar_present = 1;
+             all_digit_token = 0;
+             FREE (ttok);
+             goto next_character;
+           }
+         else
+           shell_ungetc (peek_char);
+       }
+
+#if defined (ARRAY_VARS)
+      /* Identify possible array subscript assignment; match [...] */
+      else if MBTEST(character == '[' && token_index > 0 && assignment_acceptable (last_read_token) && token_is_ident (token, token_index))    /* ] */
+        {
+         ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0);
+         if (ttok == &matched_pair_error)
+           return -1;          /* Bail immediately. */
+         RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+                                 token_buffer_size,
+                                 TOKEN_DEFAULT_GROW_SIZE);
+         token[token_index++] = character;
+         strcpy (token + token_index, ttok);
+         token_index += ttoklen;
+         FREE (ttok);
+         all_digit_token = 0;
+         goto next_character;
+        }
+      /* Identify possible compound array variable assignment. */
+      else if MBTEST(character == '=' && token_index > 0 && token_is_assignment (token, token_index))
+       {
+         peek_char = shell_getc (1);
+         if MBTEST(peek_char == '(')           /* ) */
+           {
+             ttok = parse_compound_assignment (&ttoklen);
+
+             RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 4,
+                                     token_buffer_size,
+                                     TOKEN_DEFAULT_GROW_SIZE);
+
+             token[token_index++] = '=';
+             token[token_index++] = '(';
+             if (ttok)
+               {
+                 strcpy (token + token_index, ttok);
+                 token_index += ttoklen;
+               }
+             token[token_index++] = ')';
+             FREE (ttok);
+             all_digit_token = 0;
+             goto next_character;
+           }
+         else
+           shell_ungetc (peek_char);
+       }
+#endif
+
+      /* When not parsing a multi-character word construct, shell meta-
+        characters break words. */
+      if MBTEST(shellbreak (character))
+       {
+         shell_ungetc (character);
+         goto got_token;
+       }
+
+    got_character:
+
+      all_digit_token &= DIGIT (character);
+      dollar_present |= character == '$';
+
+      if (character == CTLESC || character == CTLNUL)
+       token[token_index++] = CTLESC;
+
+      token[token_index++] = character;
+
+      RESIZE_MALLOCED_BUFFER (token, token_index, 1, token_buffer_size,
+                             TOKEN_DEFAULT_GROW_SIZE);
+
+    next_character:
+      if (character == '\n' && SHOULD_PROMPT ())
+       prompt_again ();
+
+      /* We want to remove quoted newlines (that is, a \<newline> pair)
+        unless we are within single quotes or pass_next_character is
+        set (the shell equivalent of literal-next). */
+      cd = current_delimiter (dstack);
+      character = shell_getc (cd != '\'' && pass_next_character == 0);
+    }  /* end for (;;) */
+
+got_token:
+
+  token[token_index] = '\0';
+
+  /* Check to see what thing we should return.  If the last_read_token
+     is a `<', or a `&', or the character which ended this token is
+     a '>' or '<', then, and ONLY then, is this input token a NUMBER.
+     Otherwise, it is just a word, and should be returned as such. */
+  if MBTEST(all_digit_token && (character == '<' || character == '>' || \
+                   last_read_token == LESS_AND || \
+                   last_read_token == GREATER_AND))
+      {
+       if (legal_number (token, &lvalue) && (int)lvalue == lvalue)
+         yylval.number = lvalue;
+       else
+         yylval.number = -1;
+       return (NUMBER);
+      }
+
+  /* Check for special case tokens. */
+  result = (last_shell_getc_is_singlebyte) ? special_case_tokens (token) : -1;
+  if (result >= 0)
+    return result;
+
+#if defined (ALIAS)
+  /* Posix.2 does not allow reserved words to be aliased, so check for all
+     of them, including special cases, before expanding the current token
+     as an alias. */
+  if MBTEST(posixly_correct)
+    CHECK_FOR_RESERVED_WORD (token);
+
+  /* Aliases are expanded iff EXPAND_ALIASES is non-zero, and quoting
+     inhibits alias expansion. */
+  if (expand_aliases && quoted == 0)
+    {
+      result = alias_expand_token (token);
+      if (result == RE_READ_TOKEN)
+       return (RE_READ_TOKEN);
+      else if (result == NO_EXPANSION)
+       parser_state &= ~PST_ALEXPNEXT;
+    }
+
+  /* If not in Posix.2 mode, check for reserved words after alias
+     expansion. */
+  if MBTEST(posixly_correct == 0)
+#endif
+    CHECK_FOR_RESERVED_WORD (token);
+
+  the_word = (WORD_DESC *)xmalloc (sizeof (WORD_DESC));
+  the_word->word = (char *)xmalloc (1 + token_index);
+  the_word->flags = 0;
+  strcpy (the_word->word, token);
+  if (dollar_present)
+    the_word->flags |= W_HASDOLLAR;
+  if (quoted)
+    the_word->flags |= W_QUOTED;
+  /* A word is an assignment if it appears at the beginning of a
+     simple command, or after another assignment word.  This is
+     context-dependent, so it cannot be handled in the grammar. */
+  if (assignment (token, (parser_state & PST_COMPASSIGN) != 0))
+    {
+      the_word->flags |= W_ASSIGNMENT;
+      /* Don't perform word splitting on assignment statements. */
+      if (assignment_acceptable (last_read_token) || (parser_state & PST_COMPASSIGN) != 0)
+       the_word->flags |= W_NOSPLIT;
+    }
+
+  if (command_token_position (last_read_token))
+    {
+      struct builtin *b;
+      b = builtin_address_internal (token, 0);
+      if (b && (b->flags & ASSIGNMENT_BUILTIN))
+        parser_state |= PST_ASSIGNOK;
+    }
+
+  yylval.word = the_word;
+
+  result = ((the_word->flags & (W_ASSIGNMENT|W_NOSPLIT)) == (W_ASSIGNMENT|W_NOSPLIT))
+               ? ASSIGNMENT_WORD : WORD;
+
+  switch (last_read_token)
+    {
+    case FUNCTION:
+      parser_state |= PST_ALLOWOPNBRC;
+      function_dstart = line_number;
+      break;
+    case CASE:
+    case SELECT:
+    case FOR:
+      if (word_top < MAX_CASE_NEST)
+       word_top++;
+      word_lineno[word_top] = line_number;
+      break;
+    }
+
+  return (result);
+}
+
+/* Return 1 if TOKSYM is a token that after being read would allow
+   a reserved word to be seen, else 0. */
+static int
+reserved_word_acceptable (toksym)
+     int toksym;
+{
+  switch (toksym)
+    {
+    case '\n':
+    case ';':
+    case '(':
+    case ')':
+    case '|':
+    case '&':
+    case '{':
+    case '}':          /* XXX */
+    case AND_AND:
+    case BANG:
+    case DO:
+    case DONE:
+    case ELIF:
+    case ELSE:
+    case ESAC:
+    case FI:
+    case IF:
+    case OR_OR:
+    case SEMI_SEMI:
+    case THEN:
+    case TIME:
+    case TIMEOPT:
+    case UNTIL:
+    case WHILE:
+    case 0:
+      return 1;
+    default:
+      return 0;
+    }
+}
+    
+/* Return the index of TOKEN in the alist of reserved words, or -1 if
+   TOKEN is not a shell reserved word. */
+int
+find_reserved_word (tokstr)
+     char *tokstr;
+{
+  int i;
+  for (i = 0; word_token_alist[i].word; i++)
+    if (STREQ (tokstr, word_token_alist[i].word))
+      return i;
+  return -1;
+}
+
+#if 0
+#if defined (READLINE)
+/* Called after each time readline is called.  This insures that whatever
+   the new prompt string is gets propagated to readline's local prompt
+   variable. */
+static void
+reset_readline_prompt ()
+{
+  char *temp_prompt;
+
+  if (prompt_string_pointer)
+    {
+      temp_prompt = (*prompt_string_pointer)
+                       ? decode_prompt_string (*prompt_string_pointer)
+                       : (char *)NULL;
+
+      if (temp_prompt == 0)
+       {
+         temp_prompt = (char *)xmalloc (1);
+         temp_prompt[0] = '\0';
+       }
+
+      FREE (current_readline_prompt);
+      current_readline_prompt = temp_prompt;
+    }
+}
+#endif /* READLINE */
+#endif /* 0 */
+
+#if defined (HISTORY)
+/* A list of tokens which can be followed by newlines, but not by
+   semi-colons.  When concatenating multiple lines of history, the
+   newline separator for such tokens is replaced with a space. */
+static int no_semi_successors[] = {
+  '\n', '{', '(', ')', ';', '&', '|',
+  CASE, DO, ELSE, IF, SEMI_SEMI, THEN, UNTIL, WHILE, AND_AND, OR_OR, IN,
+  0
+};
+
+/* If we are not within a delimited expression, try to be smart
+   about which separators can be semi-colons and which must be
+   newlines.  Returns the string that should be added into the
+   history entry. */
+char *
+history_delimiting_chars ()
+{
+  register int i;
+
+  if (dstack.delimiter_depth != 0)
+    return ("\n");
+    
+  /* First, handle some special cases. */
+  /*(*/
+  /* If we just read `()', assume it's a function definition, and don't
+     add a semicolon.  If the token before the `)' was not `(', and we're
+     not in the midst of parsing a case statement, assume it's a
+     parenthesized command and add the semicolon. */
+  /*)(*/
+  if (token_before_that == ')')
+    {
+      if (two_tokens_ago == '(')       /*)*/   /* function def */
+       return " ";
+      /* This does not work for subshells inside case statement
+        command lists.  It's a suboptimal solution. */
+      else if (parser_state & PST_CASESTMT)    /* case statement pattern */
+       return " ";
+      else     
+       return "; ";                            /* (...) subshell */
+    }
+  else if (token_before_that == WORD && two_tokens_ago == FUNCTION)
+    return " ";                /* function def using `function name' without `()' */
+
+  else if (token_before_that == WORD && two_tokens_ago == FOR)
+    {
+      /* Tricky.  `for i\nin ...' should not have a semicolon, but
+        `for i\ndo ...' should.  We do what we can. */
+      for (i = shell_input_line_index; whitespace(shell_input_line[i]); i++)
+       ;
+      if (shell_input_line[i] && shell_input_line[i] == 'i' && shell_input_line[i+1] == 'n')
+       return " ";
+      return ";";
+    }
+
+  for (i = 0; no_semi_successors[i]; i++)
+    {
+      if (token_before_that == no_semi_successors[i])
+       return (" ");
+    }
+
+  return ("; ");
+}
+#endif /* HISTORY */
+
+/* Issue a prompt, or prepare to issue a prompt when the next character
+   is read. */
+static void
+prompt_again ()
+{
+  char *temp_prompt;
+
+  if (interactive == 0 || expanding_alias())   /* XXX */
+    return;
+
+  ps1_prompt = get_string_value ("PS1");
+  ps2_prompt = get_string_value ("PS2");
+
+  if (!prompt_string_pointer)
+    prompt_string_pointer = &ps1_prompt;
+
+  temp_prompt = *prompt_string_pointer
+                       ? decode_prompt_string (*prompt_string_pointer)
+                       : (char *)NULL;
+
+  if (temp_prompt == 0)
+    {
+      temp_prompt = (char *)xmalloc (1);
+      temp_prompt[0] = '\0';
+    }
+
+  current_prompt_string = *prompt_string_pointer;
+  prompt_string_pointer = &ps2_prompt;
+
+#if defined (READLINE)
+  if (!no_line_editing)
+    {
+      FREE (current_readline_prompt);
+      current_readline_prompt = temp_prompt;
+    }
+  else
+#endif /* READLINE */
+    {
+      FREE (current_decoded_prompt);
+      current_decoded_prompt = temp_prompt;
+    }
+}
+
+int
+get_current_prompt_level ()
+{
+  return ((current_prompt_string && current_prompt_string == ps2_prompt) ? 2 : 1);
+}
+
+void
+set_current_prompt_level (x)
+     int x;
+{
+  prompt_string_pointer = (x == 2) ? &ps2_prompt : &ps1_prompt;
+  current_prompt_string = *prompt_string_pointer;
+}
+      
+static void
+print_prompt ()
+{
+  fprintf (stderr, "%s", current_decoded_prompt);
+  fflush (stderr);
+}
+
+/* Return a string which will be printed as a prompt.  The string
+   may contain special characters which are decoded as follows:
+
+       \a      bell (ascii 07)
+       \d      the date in Day Mon Date format
+       \e      escape (ascii 033)
+       \h      the hostname up to the first `.'
+       \H      the hostname
+       \j      the number of active jobs
+       \l      the basename of the shell's tty device name
+       \n      CRLF
+       \r      CR
+       \s      the name of the shell
+       \t      the time in 24-hour hh:mm:ss format
+       \T      the time in 12-hour hh:mm:ss format
+       \@      the time in 12-hour hh:mm am/pm format
+       \A      the time in 24-hour hh:mm format
+       \D{fmt} the result of passing FMT to strftime(3)
+       \u      your username
+       \v      the version of bash (e.g., 2.00)
+       \V      the release of bash, version + patchlevel (e.g., 2.00.0)
+       \w      the current working directory
+       \W      the last element of $PWD
+       \!      the history number of this command
+       \#      the command number of this command
+       \$      a $ or a # if you are root
+       \nnn    character code nnn in octal
+       \\      a backslash
+       \[      begin a sequence of non-printing chars
+       \]      end a sequence of non-printing chars
+*/
+#define PROMPT_GROWTH 48
+char *
+decode_prompt_string (string)
+     char *string;
+{
+  WORD_LIST *list;
+  char *result, *t;
+  struct dstack save_dstack;
+  int last_exit_value;
+#if defined (PROMPT_STRING_DECODE)
+  int result_size, result_index;
+  int c, n;
+  char *temp, octal_string[4];
+  struct tm *tm;  
+  time_t the_time;
+  char timebuf[128];
+  char *timefmt;
+
+  result = (char *)xmalloc (result_size = PROMPT_GROWTH);
+  result[result_index = 0] = 0;
+  temp = (char *)NULL;
+
+  while (c = *string++)
+    {
+      if (posixly_correct && c == '!')
+       {
+         if (*string == '!')
+           {
+             temp = savestring ("!");
+             goto add_string;
+           }
+         else
+           {
+#if !defined (HISTORY)
+               temp = savestring ("1");
+#else /* HISTORY */
+               temp = itos (history_number ());
+#endif /* HISTORY */
+               string--;       /* add_string increments string again. */
+               goto add_string;
+           }
+       }
+      if (c == '\\')
+       {
+         c = *string;
+
+         switch (c)
+           {
+           case '0':
+           case '1':
+           case '2':
+           case '3':
+           case '4':
+           case '5':
+           case '6':
+           case '7':
+             strncpy (octal_string, string, 3);
+             octal_string[3] = '\0';
+
+             n = read_octal (octal_string);
+             temp = (char *)xmalloc (3);
+
+             if (n == CTLESC || n == CTLNUL)
+               {
+                 temp[0] = CTLESC;
+                 temp[1] = n;
+                 temp[2] = '\0';
+               }
+             else if (n == -1)
+               {
+                 temp[0] = '\\';
+                 temp[1] = '\0';
+               }
+             else
+               {
+                 temp[0] = n;
+                 temp[1] = '\0';
+               }
+
+             for (c = 0; n != -1 && c < 3 && ISOCTAL (*string); c++)
+               string++;
+
+             c = 0;            /* tested at add_string: */
+             goto add_string;
+
+           case 'd':
+           case 't':
+           case 'T':
+           case '@':
+           case 'A':
+             /* Make the current time/date into a string. */
+             (void) time (&the_time);
+             tm = localtime (&the_time);
+
+             if (c == 'd')
+               n = strftime (timebuf, sizeof (timebuf), "%a %b %d", tm);
+             else if (c == 't')
+               n = strftime (timebuf, sizeof (timebuf), "%H:%M:%S", tm);
+             else if (c == 'T')
+               n = strftime (timebuf, sizeof (timebuf), "%I:%M:%S", tm);
+             else if (c == '@')
+               n = strftime (timebuf, sizeof (timebuf), "%I:%M %p", tm);
+             else if (c == 'A')
+               n = strftime (timebuf, sizeof (timebuf), "%H:%M", tm);
+
+             if (n == 0)
+               timebuf[0] = '\0';
+             else
+               timebuf[sizeof(timebuf) - 1] = '\0';
+
+             temp = savestring (timebuf);
+             goto add_string;
+
+           case 'D':           /* strftime format */
+             if (string[1] != '{')             /* } */
+               goto not_escape;
+
+             (void) time (&the_time);
+             tm = localtime (&the_time);
+             string += 2;                      /* skip { */
+             timefmt = xmalloc (strlen (string) + 3);
+             for (t = timefmt; *string && *string != '}'; )
+               *t++ = *string++;
+             *t = '\0';
+             c = *string;      /* tested at add_string */
+             if (timefmt[0] == '\0')
+               {
+                 timefmt[0] = '%';
+                 timefmt[1] = 'X';     /* locale-specific current time */
+                 timefmt[2] = '\0';
+               }
+             n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
+             free (timefmt);
+
+             if (n == 0)
+               timebuf[0] = '\0';
+             else
+               timebuf[sizeof(timebuf) - 1] = '\0';
+
+             if (promptvars || posixly_correct)
+               /* Make sure that expand_prompt_string is called with a
+                  second argument of Q_DOUBLE_QUOTES if we use this
+                  function here. */
+               temp = sh_backslash_quote_for_double_quotes (timebuf);
+             else
+               temp = savestring (timebuf);
+             goto add_string;
+             
+           case 'n':
+             temp = (char *)xmalloc (3);
+             temp[0] = no_line_editing ? '\n' : '\r';
+             temp[1] = no_line_editing ? '\0' : '\n';
+             temp[2] = '\0';
+             goto add_string;
+
+           case 's':
+             temp = base_pathname (shell_name);
+             temp = savestring (temp);
+             goto add_string;
+
+           case 'v':
+           case 'V':
+             temp = (char *)xmalloc (16);
+             if (c == 'v')
+               strcpy (temp, dist_version);
+             else
+               sprintf (temp, "%s.%d", dist_version, patch_level);
+             goto add_string;
+
+           case 'w':
+           case 'W':
+             {
+               /* Use the value of PWD because it is much more efficient. */
+               char t_string[PATH_MAX], *t;
+               int tlen;
+
+               temp = get_string_value ("PWD");
+
+               if (temp == 0)
+                 {
+                   if (getcwd (t_string, sizeof(t_string)) == 0)
+                     {
+                       t_string[0] = '.';
+                       tlen = 1;
+                     }
+                   else
+                     tlen = strlen (t_string);
+                 }
+               else
+                 {
+                   tlen = sizeof (t_string) - 1;
+                   strncpy (t_string, temp, tlen);
+                 }
+               t_string[tlen] = '\0';
+
+#define ROOT_PATH(x)   ((x)[0] == '/' && (x)[1] == 0)
+#define DOUBLE_SLASH_ROOT(x)   ((x)[0] == '/' && (x)[1] == '/' && (x)[2] == 0)
+               /* Abbreviate \W as ~ if $PWD == $HOME */
+               if (c == 'W' && (((t = get_string_value ("HOME")) == 0) || STREQ (t, temp) == 0))
+                 {
+                   if (ROOT_PATH (t_string) == 0 && DOUBLE_SLASH_ROOT (t_string) == 0)
+                     {
+                       t = strrchr (t_string, '/');
+                       if (t)
+                         strcpy (t_string, t + 1);
+                     }
+                 }
+#undef ROOT_PATH
+#undef DOUBLE_SLASH_ROOT
+               else
+                 /* polite_directory_format is guaranteed to return a string
+                    no longer than PATH_MAX - 1 characters. */
+                 strcpy (t_string, polite_directory_format (t_string));
+
+               /* If we're going to be expanding the prompt string later,
+                  quote the directory name. */
+               if (promptvars || posixly_correct)
+                 /* Make sure that expand_prompt_string is called with a
+                    second argument of Q_DOUBLE_QUOTES if we use this
+                    function here. */
+                 temp = sh_backslash_quote_for_double_quotes (t_string);
+               else
+                 temp = savestring (t_string);
+
+               goto add_string;
+             }
+
+           case 'u':
+             if (current_user.user_name == 0)
+               get_current_user_info ();
+             temp = savestring (current_user.user_name);
+             goto add_string;
+
+           case 'h':
+           case 'H':
+             temp = savestring (current_host_name);
+             if (c == 'h' && (t = (char *)strchr (temp, '.')))
+               *t = '\0';
+             goto add_string;
+
+           case '#':
+             temp = itos (current_command_number);
+             goto add_string;
+
+           case '!':
+#if !defined (HISTORY)
+             temp = savestring ("1");
+#else /* HISTORY */
+             temp = itos (history_number ());
+#endif /* HISTORY */
+             goto add_string;
+
+           case '$':
+             t = temp = (char *)xmalloc (3);
+             if ((promptvars || posixly_correct) && (current_user.euid != 0))
+               *t++ = '\\';
+             *t++ = current_user.euid == 0 ? '#' : '$';
+             *t = '\0';
+             goto add_string;
+
+           case 'j':
+             temp = itos (count_all_jobs ());
+             goto add_string;
+
+           case 'l':
+#if defined (HAVE_TTYNAME)
+             temp = (char *)ttyname (fileno (stdin));
+             t = temp ? base_pathname (temp) : "tty";
+             temp = savestring (t);
+#else
+             temp = savestring ("tty");
+#endif /* !HAVE_TTYNAME */
+             goto add_string;
+
+#if defined (READLINE)
+           case '[':
+           case ']':
+             if (no_line_editing)
+               {
+                 string++;
+                 break;
+               }
+             temp = (char *)xmalloc (3);
+             temp[0] = '\001';
+             temp[1] = (c == '[') ? RL_PROMPT_START_IGNORE : RL_PROMPT_END_IGNORE;
+             temp[2] = '\0';
+             goto add_string;
+#endif /* READLINE */
+
+           case '\\':
+           case 'a':
+           case 'e':
+           case 'r':
+             temp = (char *)xmalloc (2);
+             if (c == 'a')
+               temp[0] = '\07';
+             else if (c == 'e')
+               temp[0] = '\033';
+             else if (c == 'r')
+               temp[0] = '\r';
+             else                      /* (c == '\\') */
+               temp[0] = c;
+             temp[1] = '\0';
+             goto add_string;
+
+           default:
+not_escape:
+             temp = (char *)xmalloc (3);
+             temp[0] = '\\';
+             temp[1] = c;
+             temp[2] = '\0';
+
+           add_string:
+             if (c)
+               string++;
+             result =
+               sub_append_string (temp, result, &result_index, &result_size);
+             temp = (char *)NULL; /* Freed in sub_append_string (). */
+             result[result_index] = '\0';
+             break;
+           }
+       }
+      else
+       {
+         RESIZE_MALLOCED_BUFFER (result, result_index, 3, result_size, PROMPT_GROWTH);
+         result[result_index++] = c;
+         result[result_index] = '\0';
+       }
+    }
+#else /* !PROMPT_STRING_DECODE */
+  result = savestring (string);
+#endif /* !PROMPT_STRING_DECODE */
+
+  /* Save the delimiter stack and point `dstack' to temp space so any
+     command substitutions in the prompt string won't result in screwing
+     up the parser's quoting state. */
+  save_dstack = dstack;
+  dstack = temp_dstack;
+  dstack.delimiter_depth = 0;
+
+  /* Perform variable and parameter expansion and command substitution on
+     the prompt string. */
+  if (promptvars || posixly_correct)
+    {
+      last_exit_value = last_command_exit_value;
+      list = expand_prompt_string (result, Q_DOUBLE_QUOTES);
+      free (result);
+      result = string_list (list);
+      dispose_words (list);
+      last_command_exit_value = last_exit_value;
+    }
+  else
+    {
+      t = dequote_string (result);
+      free (result);
+      result = t;
+    }
+
+  dstack = save_dstack;
+
+  return (result);
+}
+
+/************************************************
+ *                                             *
+ *             ERROR HANDLING                  *
+ *                                             *
+ ************************************************/
+
+/* Report a syntax error, and restart the parser.  Call here for fatal
+   errors. */
+int
+yyerror (msg)
+     const char *msg;
+{
+  report_syntax_error ((char *)NULL);
+  reset_parser ();
+  return (0);
+}
+
+static char *
+error_token_from_token (token)
+     int token;
+{
+  char *t;
+
+  if (t = find_token_in_alist (token, word_token_alist, 0))
+    return t;
+
+  if (t = find_token_in_alist (token, other_token_alist, 0))
+    return t;
+
+  t = (char *)NULL;
+  /* This stuff is dicy and needs closer inspection */
+  switch (current_token)
+    {
+    case WORD:
+    case ASSIGNMENT_WORD:
+      if (yylval.word)
+       t = savestring (yylval.word->word);
+      break;
+    case NUMBER:
+      t = itos (yylval.number);
+      break;
+    case ARITH_CMD:
+      if (yylval.word_list)
+        t = string_list (yylval.word_list);
+      break;
+    case ARITH_FOR_EXPRS:
+      if (yylval.word_list)
+       t = string_list_internal (yylval.word_list, " ; ");
+      break;
+    case COND_CMD:
+      t = (char *)NULL;                /* punt */
+      break;
+    }
+
+  return t;
+}
+
+static char *
+error_token_from_text ()
+{
+  char *msg, *t;
+  int token_end, i;
+
+  t = shell_input_line;
+  i = shell_input_line_index;
+  token_end = 0;
+  msg = (char *)NULL;
+
+  if (i && t[i] == '\0')
+    i--;
+
+  while (i && (whitespace (t[i]) || t[i] == '\n'))
+    i--;
+
+  if (i)
+    token_end = i + 1;
+
+  while (i && (member (t[i], " \n\t;|&") == 0))
+    i--;
+
+  while (i != token_end && (whitespace (t[i]) || t[i] == '\n'))
+    i++;
+
+  /* Return our idea of the offending token. */
+  if (token_end || (i == 0 && token_end == 0))
+    {
+      if (token_end)
+       msg = substring (t, i, token_end);
+      else     /* one-character token */
+       {
+         msg = (char *)xmalloc (2);
+         msg[0] = t[i];
+         msg[1] = '\0';
+       }
+    }
+
+  return (msg);
+}
+
+static void
+print_offending_line ()
+{
+  char *msg;
+  int token_end;
+
+  msg = savestring (shell_input_line);
+  token_end = strlen (msg);
+  while (token_end && msg[token_end - 1] == '\n')
+    msg[--token_end] = '\0';
+
+  parser_error (line_number, "`%s'", msg);
+  free (msg);
+}
+
+/* Report a syntax error with line numbers, etc.
+   Call here for recoverable errors.  If you have a message to print,
+   then place it in MESSAGE, otherwise pass NULL and this will figure
+   out an appropriate message for you. */
+static void
+report_syntax_error (message)
+     char *message;
+{
+  char *msg;
+
+  if (message)
+    {
+      parser_error (line_number, "%s", message);
+      if (interactive && EOF_Reached)
+       EOF_Reached = 0;
+      last_command_exit_value = EX_USAGE;
+      return;
+    }
+
+  /* If the line of input we're reading is not null, try to find the
+     objectionable token.  First, try to figure out what token the
+     parser's complaining about by looking at current_token. */
+  if (current_token != 0 && EOF_Reached == 0 && (msg = error_token_from_token (current_token)))
+    {
+      parser_error (line_number, _("syntax error near unexpected token `%s'"), msg);
+      free (msg);
+
+      if (interactive == 0)
+       print_offending_line ();
+
+      last_command_exit_value = EX_USAGE;
+      return;
+    }
+
+  /* If looking at the current token doesn't prove fruitful, try to find the
+     offending token by analyzing the text of the input line near the current
+     input line index and report what we find. */
+  if (shell_input_line && *shell_input_line)
+    {
+      msg = error_token_from_text ();
+      if (msg)
+       {
+         parser_error (line_number, _("syntax error near `%s'"), msg);
+         free (msg);
+       }
+
+      /* If not interactive, print the line containing the error. */
+      if (interactive == 0)
+        print_offending_line ();
+    }
+  else
+    {
+      msg = EOF_Reached ? _("syntax error: unexpected end of file") : _("syntax error");
+      parser_error (line_number, "%s", msg);
+      /* When the shell is interactive, this file uses EOF_Reached
+        only for error reporting.  Other mechanisms are used to
+        decide whether or not to exit. */
+      if (interactive && EOF_Reached)
+       EOF_Reached = 0;
+    }
+
+  last_command_exit_value = EX_USAGE;
+}
+
+/* ??? Needed function. ??? We have to be able to discard the constructs
+   created during parsing.  In the case of error, we want to return
+   allocated objects to the memory pool.  In the case of no error, we want
+   to throw away the information about where the allocated objects live.
+   (dispose_command () will actually free the command.) */
+static void
+discard_parser_constructs (error_p)
+     int error_p;
+{
+}
+
+/************************************************
+ *                                             *
+ *             EOF HANDLING                    *
+ *                                             *
+ ************************************************/
+
+/* Do that silly `type "bye" to exit' stuff.  You know, "ignoreeof". */
+
+/* A flag denoting whether or not ignoreeof is set. */
+int ignoreeof = 0;
+
+/* The number of times that we have encountered an EOF character without
+   another character intervening.  When this gets above the limit, the
+   shell terminates. */
+int eof_encountered = 0;
+
+/* The limit for eof_encountered. */
+int eof_encountered_limit = 10;
+
+/* If we have EOF as the only input unit, this user wants to leave
+   the shell.  If the shell is not interactive, then just leave.
+   Otherwise, if ignoreeof is set, and we haven't done this the
+   required number of times in a row, print a message. */
+static void
+handle_eof_input_unit ()
+{
+  if (interactive)
+    {
+      /* shell.c may use this to decide whether or not to write out the
+        history, among other things.  We use it only for error reporting
+        in this file. */
+      if (EOF_Reached)
+       EOF_Reached = 0;
+
+      /* If the user wants to "ignore" eof, then let her do so, kind of. */
+      if (ignoreeof)
+       {
+         if (eof_encountered < eof_encountered_limit)
+           {
+             fprintf (stderr, _("Use \"%s\" to leave the shell.\n"),
+                      login_shell ? "logout" : "exit");
+             eof_encountered++;
+             /* Reset the parsing state. */
+             last_read_token = current_token = '\n';
+             /* Reset the prompt string to be $PS1. */
+             prompt_string_pointer = (char **)NULL;
+             prompt_again ();
+             return;
+           }
+       }
+
+      /* In this case EOF should exit the shell.  Do it now. */
+      reset_parser ();
+      exit_builtin ((WORD_LIST *)NULL);
+    }
+  else
+    {
+      /* We don't write history files, etc., for non-interactive shells. */
+      EOF_Reached = 1;
+    }
+}
+
+/************************************************
+ *                                             *
+ *     STRING PARSING FUNCTIONS                *
+ *                                             *
+ ************************************************/
+
+/* It's very important that these two functions treat the characters
+   between ( and ) identically. */
+
+static WORD_LIST parse_string_error;
+
+/* Take a string and run it through the shell parser, returning the
+   resultant word list.  Used by compound array assignment. */
+WORD_LIST *
+parse_string_to_word_list (s, flags, whom)
+     char *s;
+     int flags;
+     const char *whom;
+{
+  WORD_LIST *wl;
+  int tok, orig_current_token, orig_line_number, orig_input_terminator;
+  int orig_line_count;
+  int old_echo_input, old_expand_aliases;
+#if defined (HISTORY)
+  int old_remember_on_history, old_history_expansion_inhibited;
+#endif
+
+#if defined (HISTORY)
+  old_remember_on_history = remember_on_history;
+#  if defined (BANG_HISTORY)
+  old_history_expansion_inhibited = history_expansion_inhibited;
+#  endif
+  bash_history_disable ();
+#endif
+
+  orig_line_number = line_number;
+  orig_line_count = current_command_line_count;
+  orig_input_terminator = shell_input_line_terminator;
+  old_echo_input = echo_input_at_read;
+  old_expand_aliases = expand_aliases;
+
+  push_stream (1);
+  last_read_token = WORD;              /* WORD to allow reserved words here */
+  current_command_line_count = 0;
+  echo_input_at_read = expand_aliases = 0;
+
+  with_input_from_string (s, whom);
+  wl = (WORD_LIST *)NULL;
+
+  if (flags & 1)
+    parser_state |= PST_COMPASSIGN;
+
+  while ((tok = read_token (READ)) != yacc_EOF)
+    {
+      if (tok == '\n' && *bash_input.location.string == '\0')
+       break;
+      if (tok == '\n')         /* Allow newlines in compound assignments */
+       continue;
+      if (tok != WORD && tok != ASSIGNMENT_WORD)
+       {
+         line_number = orig_line_number + line_number - 1;
+         orig_current_token = current_token;
+         current_token = tok;
+         yyerror ((char *)NULL);       /* does the right thing */
+         current_token = orig_current_token;
+         if (wl)
+           dispose_words (wl);
+         wl = &parse_string_error;
+         break;
+       }
+      wl = make_word_list (yylval.word, wl);
+    }
+  
+  last_read_token = '\n';
+  pop_stream ();
+
+#if defined (HISTORY)
+  remember_on_history = old_remember_on_history;
+#  if defined (BANG_HISTORY)
+  history_expansion_inhibited = old_history_expansion_inhibited;
+#  endif /* BANG_HISTORY */
+#endif /* HISTORY */
+
+  echo_input_at_read = old_echo_input;
+  expand_aliases = old_expand_aliases;
+
+  current_command_line_count = orig_line_count;
+  shell_input_line_terminator = orig_input_terminator;
+
+  if (flags & 1)
+    parser_state &= ~PST_COMPASSIGN;
+
+  if (wl == &parse_string_error)
+    {
+      last_command_exit_value = EXECUTION_FAILURE;
+      if (interactive_shell == 0 && posixly_correct)
+       jump_to_top_level (FORCE_EOF);
+      else
+       jump_to_top_level (DISCARD);
+    }
+
+  return (REVERSE_LIST (wl, WORD_LIST *));
+}
+
+static char *
+parse_compound_assignment (retlenp)
+     int *retlenp;
+{
+  WORD_LIST *wl, *rl;
+  int tok, orig_line_number, orig_token_size;
+  char *saved_token, *ret;
+
+  saved_token = token;
+  orig_token_size = token_buffer_size;
+  orig_line_number = line_number;
+
+  last_read_token = WORD;      /* WORD to allow reserved words here */
+
+  token = (char *)NULL;
+  token_buffer_size = 0;
+
+  wl = (WORD_LIST *)NULL;      /* ( */
+  parser_state |= PST_COMPASSIGN;
+
+  while ((tok = read_token (READ)) != ')')
+    {
+      if (tok == '\n')                 /* Allow newlines in compound assignments */
+       {
+         if (SHOULD_PROMPT ())
+           prompt_again ();
+         continue;
+       }
+      if (tok != WORD && tok != ASSIGNMENT_WORD)
+       {
+         current_token = tok;  /* for error reporting */
+         if (tok == yacc_EOF)  /* ( */
+           parser_error (orig_line_number, _("unexpected EOF while looking for matching `)'"));
+         else
+           yyerror ((char *)NULL);     /* does the right thing */
+         if (wl)
+           dispose_words (wl);
+         wl = &parse_string_error;
+         break;
+       }
+      wl = make_word_list (yylval.word, wl);
+    }
+
+  FREE (token);
+  token = saved_token;
+  token_buffer_size = orig_token_size;
+
+  parser_state &= ~PST_COMPASSIGN;
+
+  if (wl == &parse_string_error)
+    {
+      last_command_exit_value = EXECUTION_FAILURE;
+      last_read_token = '\n';  /* XXX */
+      if (interactive_shell == 0 && posixly_correct)
+       jump_to_top_level (FORCE_EOF);
+      else
+       jump_to_top_level (DISCARD);
+    }
+
+  last_read_token = WORD;
+  if (wl)
+    {
+      rl = REVERSE_LIST (wl, WORD_LIST *);
+      ret = string_list (rl);
+      dispose_words (rl);
+    }
+  else
+    ret = (char *)NULL;
+
+  if (retlenp)
+    *retlenp = (ret && *ret) ? strlen (ret) : 0;
+  return ret;
+}
+
+/************************************************
+ *                                             *
+ *   SAVING AND RESTORING PARTIAL PARSE STATE   *
+ *                                             *
+ ************************************************/
+
+sh_parser_state_t *
+save_parser_state (ps)
+     sh_parser_state_t *ps;
+{
+#if defined (ARRAY_VARS)
+  SHELL_VAR *v;
+#endif
+
+  if (ps == 0)
+    ps = xmalloc (sizeof (sh_parser_state_t));
+  if (ps == 0)
+    return ((sh_parser_state_t *)NULL);
+
+  ps->parser_state = parser_state;
+  ps->token_state = save_token_state ();
+
+  ps->input_line_terminator = shell_input_line_terminator;
+  ps->eof_encountered = eof_encountered;
+
+  ps->current_command_line_count = current_command_line_count;
+
+#if defined (HISTORY)
+  ps->remember_on_history = remember_on_history;
+#  if defined (BANG_HISTORY)
+  ps->history_expansion_inhibited = history_expansion_inhibited;
+#  endif
+#endif
+
+  ps->last_command_exit_value = last_command_exit_value;
+#if defined (ARRAY_VARS)
+  v = find_variable ("PIPESTATUS");
+  if (v && array_p (v) && array_cell (v))
+    ps->pipestatus = array_copy (array_cell (v));
+  else
+    ps->pipestatus = (ARRAY *)NULL;
+#endif
+    
+  ps->last_shell_builtin = last_shell_builtin;
+  ps->this_shell_builtin = this_shell_builtin;
+
+  ps->expand_aliases = expand_aliases;
+  ps->echo_input_at_read = echo_input_at_read;
+
+  return (ps);
+}
+
+void
+restore_parser_state (ps)
+     sh_parser_state_t *ps;
+{
+#if defined (ARRAY_VARS)
+  SHELL_VAR *v;
+#endif
+
+  if (ps == 0)
+    return;
+
+  parser_state = ps->parser_state;
+  if (ps->token_state)
+    {
+      restore_token_state (ps->token_state);
+      free (ps->token_state);
+    }
+
+  shell_input_line_terminator = ps->input_line_terminator;
+  eof_encountered = ps->eof_encountered;
+
+  current_command_line_count = ps->current_command_line_count;
+
+#if defined (HISTORY)
+  remember_on_history = ps->remember_on_history;
+#  if defined (BANG_HISTORY)
+  history_expansion_inhibited = ps->history_expansion_inhibited;
+#  endif
+#endif
+
+  last_command_exit_value = ps->last_command_exit_value;
+#if defined (ARRAY_VARS)
+  v = find_variable ("PIPESTATUS");
+  if (v && array_p (v) && array_cell (v))
+    {
+      array_dispose (array_cell (v));
+      var_setarray (v, ps->pipestatus);
+    }
+#endif
+
+  last_shell_builtin = ps->last_shell_builtin;
+  this_shell_builtin = ps->this_shell_builtin;
+
+  expand_aliases = ps->expand_aliases;
+  echo_input_at_read = ps->echo_input_at_read;
+}
+
+/************************************************
+ *                                             *
+ *     MULTIBYTE CHARACTER HANDLING            *
+ *                                             *
+ ************************************************/
+
+#if defined (HANDLE_MULTIBYTE)
+static void
+set_line_mbstate ()
+{
+  int i, previ, len, c;
+  mbstate_t mbs, prevs;
+  size_t mbclen;
+
+  if (shell_input_line == NULL)
+    return;
+  len = strlen (shell_input_line);     /* XXX - shell_input_line_len ? */
+  FREE (shell_input_line_property);
+  shell_input_line_property = (char *)xmalloc (len + 1);
+
+  memset (&prevs, '\0', sizeof (mbstate_t));
+  for (i = previ = 0; i < len; i++)
+    {
+      mbs = prevs;
+
+      c = shell_input_line[i];
+      if (c == EOF)
+       {
+         int j;
+         for (j = i; j < len; j++)
+           shell_input_line_property[j] = 1;
+         break;
+       }
+
+      mbclen = mbrlen (shell_input_line + previ, i - previ + 1, &mbs);
+      if (mbclen == 1 || mbclen == (size_t)-1)
+       {
+         mbclen = 1;
+         previ = i + 1;
+       }
+      else if (mbclen == (size_t)-2)
+        mbclen = 0;
+      else if (mbclen > 1)
+       {
+         mbclen = 0;
+         previ = i + 1;
+         prevs = mbs;
+       }
+      else
+       {
+         /* XXX - what to do if mbrlen returns 0? (null wide character) */
+         int j;
+         for (j = i; j < len; j++)
+           shell_input_line_property[j] = 1;
+         break;
+       }
+
+      shell_input_line_property[i] = mbclen;
+    }
+}
+#endif /* HANDLE_MULTIBYTE */
index 5eaed70be1966a0070fc80aa8ad970dc35bb6eb4..4c2c67a4573f6317a9ccc8f69db4e86db5ddd723 100644 (file)
@@ -25,6 +25,6 @@
    regexp `^#define[   ]*PATCHLEVEL', since that's what support/mkversion.sh
    looks for to find the patch level (for the sccs version string). */
 
-#define PATCHLEVEL 1
+#define PATCHLEVEL 0
 
 #endif /* _PATCHLEVEL_H_ */
diff --git a/patchlevel.h~ b/patchlevel.h~
new file mode 100644 (file)
index 0000000..5eaed70
--- /dev/null
@@ -0,0 +1,30 @@
+/* patchlevel.h -- current bash patch level */
+
+/* Copyright (C) 2001 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash, the Bourne Again SHell.
+
+   Bash is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   Bash is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#if !defined (_PATCHLEVEL_H_)
+#define _PATCHLEVEL_H_
+
+/* It's important that there be no other strings in this file that match the
+   regexp `^#define[   ]*PATCHLEVEL', since that's what support/mkversion.sh
+   looks for to find the patch level (for the sccs version string). */
+
+#define PATCHLEVEL 1
+
+#endif /* _PATCHLEVEL_H_ */
diff --git a/po.orig/LINGUAS b/po.orig/LINGUAS
new file mode 100644 (file)
index 0000000..3595cc0
--- /dev/null
@@ -0,0 +1,2 @@
+# Set of available languages.
+en@quot en@boldquot
diff --git a/po.orig/Makefile.in.in b/po.orig/Makefile.in.in
new file mode 100644 (file)
index 0000000..c28f1ce
--- /dev/null
@@ -0,0 +1,357 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU General Public
+# License but which still want to provide support for the GNU gettext
+# functionality.
+# Please note that the actual code of GNU gettext is covered by the GNU
+# General Public License and is *not* in the public domain.
+
+PACKAGE = @PACKAGE_NAME@
+VERSION = @PACKAGE_VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+topdir = @top_srcdir@
+BUILD_DIR = @BUILD_DIR@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
+
+.po.mo:
+       @echo "$(MSGFMT) -c -o $@ $<"; \
+       $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+       @lang=`echo $* | sed -e 's,.*/,,'`; \
+       test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+       echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+       cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+       sed -e '/^#/d' $< > t-$@
+       mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+       test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS)
+       @echo "touch stamp-po"
+       @echo timestamp > stamp-poT
+       @mv stamp-poT stamp-po
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+       $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+         --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+         --files-from=$(srcdir)/POTFILES.in \
+         --copyright-holder='$(COPYRIGHT_HOLDER)' \
+         --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
+       $(MAKE) $(MFLAGS) builtins.pot-update
+       test ! -f $(DOMAIN).po || { \
+         if test -f $(srcdir)/$(DOMAIN).pot; then \
+           sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+           sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+           if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+             rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+           else \
+             rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+             mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+           fi; \
+         else \
+           mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+         fi; \
+       }
+
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+$(srcdir)/$(DOMAIN).pot:
+       $(MAKE) $(DOMAIN).pot-update
+
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
+$(POFILES): $(srcdir)/$(DOMAIN).pot
+       @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+       test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+       echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+       cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+       if test "$(PACKAGE)" = "gettext-tools"; then \
+         $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+         for file in $(DISTFILES.common) Makevars.template; do \
+           $(INSTALL_DATA) $(srcdir)/$$file \
+                           $(DESTDIR)$(gettextsrcdir)/$$file; \
+         done; \
+         for file in Makevars; do \
+           rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+         done; \
+       else \
+         : ; \
+       fi
+install-data-no: all
+install-data-yes: all
+       $(mkinstalldirs) $(DESTDIR)$(datadir)
+       @catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+         dir=$(localedir)/$$lang/LC_MESSAGES; \
+         $(mkinstalldirs) $(DESTDIR)$$dir; \
+         if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+         $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+         echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+         for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+           if test -n "$$lc"; then \
+             if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+               link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+               mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+               mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+               (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+                for file in *; do \
+                  if test -f $$file; then \
+                    ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+                  fi; \
+                done); \
+               rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+             else \
+               if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+                 :; \
+               else \
+                 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+                 mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+               fi; \
+             fi; \
+             rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+             ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+             ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+             cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+             echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+           fi; \
+         done; \
+       done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-@USE_NLS@
+       if test "$(PACKAGE)" = "gettext-tools"; then \
+         $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+       else \
+         : ; \
+       fi
+installdirs-data-no:
+installdirs-data-yes:
+       $(mkinstalldirs) $(DESTDIR)$(datadir)
+       @catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+         dir=$(localedir)/$$lang/LC_MESSAGES; \
+         $(mkinstalldirs) $(DESTDIR)$$dir; \
+         for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+           if test -n "$$lc"; then \
+             if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+               link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+               mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+               mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+               (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+                for file in *; do \
+                  if test -f $$file; then \
+                    ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+                  fi; \
+                done); \
+               rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+             else \
+               if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+                 :; \
+               else \
+                 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+                 mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+               fi; \
+             fi; \
+           fi; \
+         done; \
+       done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-@USE_NLS@
+       if test "$(PACKAGE)" = "gettext-tools"; then \
+         for file in $(DISTFILES.common) Makevars.template; do \
+           rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+         done; \
+       else \
+         : ; \
+       fi
+uninstall-data-no:
+uninstall-data-yes:
+       catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+         for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+           rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+         done; \
+       done
+
+check: all
+
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+mostlyclean:
+       rm -f remove-potcdate.sed
+       rm -f stamp-poT
+       rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+       rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+       rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+       rm -f stamp-po $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+       $(MAKE) update-po
+       @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: $(DISTFILES)
+       dists="$(DISTFILES)"; \
+       if test "$(PACKAGE)" = "gettext-tools"; then \
+         dists="$$dists Makevars.template"; \
+       fi; \
+       if test -f $(srcdir)/ChangeLog; then \
+         dists="$$dists ChangeLog"; \
+       fi; \
+       for i in 0 1 2 3 4 5 6 7 8 9; do \
+         if test -f $(srcdir)/ChangeLog.$$i; then \
+           dists="$$dists ChangeLog.$$i"; \
+         fi; \
+       done; \
+       if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+       for file in $$dists; do \
+         if test -f $$file; then \
+           cp -p $$file $(distdir); \
+         else \
+           cp -p $(srcdir)/$$file $(distdir); \
+         fi; \
+       done
+
+update-po: Makefile
+       $(MAKE) $(DOMAIN).pot-update
+       test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+       $(MAKE) update-gmo
+
+# General rule for updating PO files.
+
+.nop.po-update:
+       @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+       if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+       tmpdir=`pwd`; \
+       echo "$$lang:"; \
+       test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+       echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+       cd $(srcdir); \
+       if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+         if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+           rm -f $$tmpdir/$$lang.new.po; \
+         else \
+           if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+             :; \
+           else \
+             echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+             exit 1; \
+           fi; \
+         fi; \
+       else \
+         echo "msgmerge for $$lang.po failed!" 1>&2; \
+         rm -f $$tmpdir/$$lang.new.po; \
+       fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+       @:
+
+Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@ $(srcdir)/Rules-builtins
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+              $(SHELL) ./config.status
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po.orig/Makevars b/po.orig/Makevars
new file mode 100644 (file)
index 0000000..84b2d95
--- /dev/null
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = $(BUILD_DIR)
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ -C
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = bug-bash@gnu.org
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/po.orig/Makevars.template b/po.orig/Makevars.template
new file mode 100644 (file)
index 0000000..32692ab
--- /dev/null
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/po.orig/POTFILES.in b/po.orig/POTFILES.in
new file mode 100644 (file)
index 0000000..a59a096
--- /dev/null
@@ -0,0 +1,76 @@
+# List of source files containing translatable strings.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+
+arrayfunc.c
+bashhist.c
+bashline.c
+braces.c
+builtins/bind.def
+builtins/break.def
+builtins/caller.def
+builtins/cd.def
+builtins/common.c
+builtins/complete.def
+builtins/declare.def
+builtins/enable.def
+builtins/evalfile.c
+builtins/exec.def
+builtins/exit.def
+builtins/fc.def
+builtins/fg_bg.def
+builtins/getopt.c
+builtins/hash.def
+builtins/help.def
+builtins/history.def
+builtins/inlib.def
+builtins/jobs.def
+builtins/kill.def
+builtins/let.def
+builtins/mkbuiltins.c
+builtins/printf.def
+builtins/pushd.def
+builtins/read.def
+builtins/return.def
+builtins/set.def
+builtins/setattr.def
+builtins/shift.def
+builtins/shopt.def
+builtins/source.def
+builtins/suspend.def
+builtins/type.def
+builtins/ulimit.def
+builtins/umask.def
+error.c
+eval.c
+execute_cmd.c
+expr.c
+general.c
+input.c
+jobs.c
+lib/malloc/malloc.c
+lib/malloc/stats.c
+lib/malloc/table.c
+lib/malloc/watch.c
+lib/sh/fmtulong.c
+lib/sh/netopen.c
+mailcheck.c
+make_cmd.c
+nojobs.c
+parse.y
+pcomplete.c
+pcomplib.c
+print_cmd.c
+redir.c
+shell.c
+sig.c
+siglist.c
+subst.c
+test.c
+trap.c
+variables.c
+version.c
+xmalloc.c
+
+# Apparently gettext's defaults cannot handle files that exist outside of the
+# source directory, like in the build directory
+#../builtins/builtins.c
diff --git a/po.orig/README b/po.orig/README
new file mode 100644 (file)
index 0000000..979884c
--- /dev/null
@@ -0,0 +1 @@
+This apparently requires GNU sed
diff --git a/po.orig/Rules-builtins b/po.orig/Rules-builtins
new file mode 100644 (file)
index 0000000..57df81c
--- /dev/null
@@ -0,0 +1,19 @@
+#
+# Update the strings from the builtins' long docs.  Must be called when
+# bash.pot exists, in the middle of the bash.pot-update recipe
+#
+builtins.pot-update:   $(top_builddir)/builtins/builtins.c
+       $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_builddir)/builtins \
+               $(XGETTEXT_OPTIONS) --omit-header \
+         --copyright-holder='$(COPYRIGHT_HOLDER)' \
+         --join-existing \
+         builtins.c
+
+# This rule has no dependencies: we don't need to update builtins.pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make builtins.pot-update" or "make dist" will force an update.
+$(srcdir)/builtins.pot:
+       $(MAKE) builtins.pot-update
+
+xdist:
+       $(MAKE) update-po
diff --git a/po.orig/Rules-quot b/po.orig/Rules-quot
new file mode 100644 (file)
index 0000000..5f46d23
--- /dev/null
@@ -0,0 +1,42 @@
+# Special Makefile rules for English message catalogs with quotation marks.
+
+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
+
+.SUFFIXES: .insert-header .po-update-en
+
+en@quot.po-update: en@quot.po-update-en
+en@boldquot.po-update: en@boldquot.po-update-en
+
+.insert-header.po-update-en:
+       @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+       if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+       tmpdir=`pwd`; \
+       echo "$$lang:"; \
+       ll=`echo $$lang | sed -e 's/@.*//'`; \
+       LC_ALL=C; export LC_ALL; \
+       cd $(srcdir); \
+       if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+         if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+           rm -f $$tmpdir/$$lang.new.po; \
+         else \
+           if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+             :; \
+           else \
+             echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+             exit 1; \
+           fi; \
+         fi; \
+       else \
+         echo "creation of $$lang.po failed!" 1>&2; \
+         rm -f $$tmpdir/$$lang.new.po; \
+       fi
+
+en@quot.insert-header: insert-header.sin
+       sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
+
+en@boldquot.insert-header: insert-header.sin
+       sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
+
+mostlyclean: mostlyclean-quot
+mostlyclean-quot:
+       rm -f *.insert-header
diff --git a/po.orig/bash.po.orig b/po.orig/bash.po.orig
new file mode 100644 (file)
index 0000000..023388d
--- /dev/null
@@ -0,0 +1,5623 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#: array.c:695 array.c:755 array.c:879 bashhist.c:661 bashline.c:801
+#: bashline.c:1416 error.c:88 error.c:318 error.c:320 error.c:322
+#: execute_cmd.c:2005 execute_cmd.c:2007 execute_cmd.c:2195 execute_cmd.c:2441
+#: execute_cmd.c:2580 execute_cmd.c:3186 execute_cmd.c:3838 expr.c:1092
+#: expr.c:1093 general.c:132 jobs.c:1128 jobs.c:1143 jobs.c:2318 jobs.c:2319
+#: locale.c:64 locale.c:422 parse.y:1209 pcomplete.c:937 pcomplete.c:947
+#: pcomplete.c:1076 print_cmd.c:142 print_cmd.c:305 print_cmd.c:364
+#: print_cmd.c:368 print_cmd.c:374 print_cmd.c:378 print_cmd.c:548
+#: print_cmd.c:733 print_cmd.c:847 print_cmd.c:851 subst.c:1483 subst.c:1510
+#: subst.c:1734 subst.c:1754 subst.c:4238 subst.c:4274 subst.c:6391
+#: syntax.h:43 unwind_prot.c:173 variables.c:1631 variables.c:2381
+#: /usr/homes/chet/src/bash/src/parse.y:1209 builtins/common.c:144
+#: builtins/common.c:640 builtins/getopt.c:204 builtins/mkbuiltins.c:1067
+#: builtins/mkbuiltins.c:1070 builtins/mkbuiltins.c:1072
+#: builtins/mkbuiltins.c:1074 builtins/mkbuiltins.c:1079
+#: builtins/mkbuiltins.c:1084 builtins/mkbuiltins.c:1088
+#: builtins/mkbuiltins.c:1094 builtins/mkbuiltins.c:1100
+#: builtins/mkbuiltins.c:1108 builtins/mkbuiltins.c:1111
+#: builtins/mkbuiltins.c:1207 builtins/mkbuiltins.c:1208
+#: builtins/caller.def:127 builtins/caller.def:131 builtins/command.def:134
+#: builtins/complete.def:567 builtins/declare.def:238 builtins/declare.def:355
+#: builtins/declare.def:438 builtins/fc.def:338 builtins/getopts.def:310
+#: builtins/help.def:105 builtins/help.def:110 builtins/history.def:291
+#: builtins/printf.def:123 builtins/printf.def:726 builtins/pushd.def:330
+#: builtins/pushd.def:371 builtins/pushd.def:654 builtins/pushd.def:662
+#: builtins/pushd.def:665 builtins/pushd.def:675 builtins/pushd.def:679
+#: builtins/pushd.def:683 builtins/pushd.def:686 builtins/pushd.def:689
+#: builtins/pushd.def:698 builtins/pushd.def:702 builtins/pushd.def:706
+#: builtins/pushd.def:709 builtins/read.def:258 builtins/read.def:386
+#: builtins/read.def:595 builtins/setattr.def:353 builtins/setattr.def:396
+#: builtins/ulimit.def:111 builtins/umask.def:131 lib/sh/snprintf.c:394
+#: lib/sh/snprintf.c:1691 lib/sh/stringlist.c:235 lib/sh/stringvec.c:223
+#: lib/malloc/stats.c:99
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-12-04 16:07-0500\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: arrayfunc.c:43
+msgid "bad array subscript"
+msgstr ""
+
+#: arrayfunc.c:304
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr ""
+
+#: bashhist.c:319
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr ""
+
+#: bashline.c:2789
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr ""
+
+#: bashline.c:2838
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr ""
+
+#: bashline.c:2867 braces.c:129
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr ""
+
+#: bashline.c:2901
+#, c-format
+msgid "%s: missing colon separator"
+msgstr ""
+
+#: error.c:163
+#, c-format
+msgid "last command: %s\n"
+msgstr ""
+
+#: error.c:168
+#, c-format
+msgid "Report this to %s\n"
+msgstr ""
+
+#: error.c:171
+msgid "Stopping myself..."
+msgstr ""
+
+#: error.c:258
+#, c-format
+msgid "%s: warning: "
+msgstr ""
+
+#: error.c:403
+msgid "unknown command error"
+msgstr ""
+
+#: error.c:404
+msgid "bad command type"
+msgstr ""
+
+#: error.c:405
+msgid "bad connector"
+msgstr ""
+
+#: error.c:406
+msgid "bad jump"
+msgstr ""
+
+#: error.c:444
+#, c-format
+msgid "%s: unbound variable"
+msgstr ""
+
+#: error.c:451 builtins/common.c:221
+#, c-format
+msgid "%s: readonly variable"
+msgstr ""
+
+#: eval.c:173
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr ""
+
+#: execute_cmd.c:447
+msgid "close"
+msgstr ""
+
+#: execute_cmd.c:447
+msgid "open"
+msgstr ""
+
+#: execute_cmd.c:465
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr ""
+
+#: execute_cmd.c:1035
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr ""
+
+#: execute_cmd.c:3520
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr ""
+
+#: execute_cmd.c:3608
+#, c-format
+msgid "%s: command not found"
+msgstr ""
+
+#: execute_cmd.c:3820 shell.c:1393 builtins/evalfile.c:127
+#: builtins/hash.def:158
+#, c-format
+msgid "%s: is a directory"
+msgstr ""
+
+#: execute_cmd.c:3838
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr ""
+
+#: execute_cmd.c:3875 shell.c:1403 builtins/evalfile.c:172
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr ""
+
+#: execute_cmd.c:3948 builtins/declare.def:306
+#, c-format
+msgid "%s: readonly function"
+msgstr ""
+
+#: execute_cmd.c:3987
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr ""
+
+#: expr.c:238
+msgid "expression recursion level exceeded"
+msgstr ""
+
+#: expr.c:262
+msgid "recursion stack underflow"
+msgstr ""
+
+#: expr.c:373
+msgid "syntax error in expression"
+msgstr ""
+
+#: expr.c:413
+msgid "attempted assignment to non-variable"
+msgstr ""
+
+#: expr.c:434 expr.c:439 expr.c:749
+msgid "division by 0"
+msgstr ""
+
+#: expr.c:465
+msgid "bug: bad expassign token"
+msgstr ""
+
+#: expr.c:495 expr.c:510 builtins/let.def:92 builtins/let.def:117
+msgid "expression expected"
+msgstr ""
+
+#: expr.c:507
+msgid "`:' expected for conditional expression"
+msgstr ""
+
+#: expr.c:774
+msgid "exponent less than 0"
+msgstr ""
+
+#: expr.c:818
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr ""
+
+#: expr.c:846
+msgid "missing `)'"
+msgstr ""
+
+#: expr.c:870
+msgid "syntax error: operand expected"
+msgstr ""
+
+#: expr.c:1091
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr ""
+
+#: expr.c:1145
+msgid "bad number"
+msgstr ""
+
+#: expr.c:1149
+msgid "invalid arithmetic base"
+msgstr ""
+
+#: expr.c:1169
+msgid "value too great for base"
+msgstr ""
+
+#: expr.c:1217
+#, c-format
+msgid "%s: expression error\n"
+msgstr ""
+
+#: general.c:58
+msgid "getcwd: cannot access parent directories"
+msgstr ""
+
+#: general.c:227 general.c:232 builtins/common.c:193
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr ""
+
+#: input.c:229
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr ""
+
+#: input.c:237
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr ""
+
+#: jobs.c:692
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr ""
+
+#: jobs.c:1631 nojobs.c:646
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr ""
+
+#: jobs.c:1814
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr ""
+
+#: jobs.c:1957
+#, c-format
+msgid "wait_for: job == NO_JOB, giving the terminal to shell_pgrp (%ld)"
+msgstr ""
+
+#: jobs.c:2061
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr ""
+
+#: jobs.c:2283
+#, c-format
+msgid "%s: job has terminated"
+msgstr ""
+
+#: jobs.c:2292
+#, c-format
+msgid "%s: job %d already in background"
+msgstr ""
+
+#: jobs.c:3036
+msgid "no job control in this shell"
+msgstr ""
+
+#: jobs.c:3250
+#, c-format
+msgid "tcsetpgrp(%d) failed: pid %ld to pgrp %ld"
+msgstr ""
+
+#: mailcheck.c:381
+msgid "You have mail in $_"
+msgstr ""
+
+#: mailcheck.c:406
+msgid "You have new mail in $_"
+msgstr ""
+
+#: mailcheck.c:422
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr ""
+
+#: make_cmd.c:316
+msgid "syntax error: arithmetic expression required"
+msgstr ""
+
+#: make_cmd.c:318
+msgid "syntax error: `;' unexpected"
+msgstr ""
+
+#: make_cmd.c:558
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr ""
+
+#: make_cmd.c:728
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr ""
+
+#: mksyntax.c:334
+#, c-format
+msgid "%s: %s: cannot open: %s\n"
+msgstr ""
+
+#: parse.y:1663 /usr/homes/chet/src/bash/src/parse.y:1663
+msgid "read_a_line: ignored null byte in input"
+msgstr ""
+
+#: parse.y:1928 /usr/homes/chet/src/bash/src/parse.y:1928
+msgid "shell_getc: ignored null byte in input"
+msgstr ""
+
+#: parse.y:2724 /usr/homes/chet/src/bash/src/parse.y:2724
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr ""
+
+#: parse.y:3009 /usr/homes/chet/src/bash/src/parse.y:3009
+msgid "unexpected EOF while looking for `]]'"
+msgstr ""
+
+#: parse.y:3014 /usr/homes/chet/src/bash/src/parse.y:3014
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr ""
+
+#: parse.y:3018 /usr/homes/chet/src/bash/src/parse.y:3018
+msgid "syntax error in conditional expression"
+msgstr ""
+
+#: parse.y:3096 /usr/homes/chet/src/bash/src/parse.y:3096
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr ""
+
+#: parse.y:3100 /usr/homes/chet/src/bash/src/parse.y:3100
+msgid "expected `)'"
+msgstr ""
+
+#: parse.y:3128 /usr/homes/chet/src/bash/src/parse.y:3128
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr ""
+
+#: parse.y:3132 /usr/homes/chet/src/bash/src/parse.y:3132
+msgid "unexpected argument to conditional unary operator"
+msgstr ""
+
+#: parse.y:3160 /usr/homes/chet/src/bash/src/parse.y:3160
+msgid "-n"
+msgstr ""
+
+#: parse.y:3169 /usr/homes/chet/src/bash/src/parse.y:3169
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr ""
+
+#: parse.y:3173 /usr/homes/chet/src/bash/src/parse.y:3173
+msgid "conditional binary operator expected"
+msgstr ""
+
+#: parse.y:3189 /usr/homes/chet/src/bash/src/parse.y:3189
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr ""
+
+#: parse.y:3193 /usr/homes/chet/src/bash/src/parse.y:3193
+msgid "unexpected argument to conditional binary operator"
+msgstr ""
+
+#: parse.y:3204 /usr/homes/chet/src/bash/src/parse.y:3204
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr ""
+
+#: parse.y:3207 /usr/homes/chet/src/bash/src/parse.y:3207
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr ""
+
+#: parse.y:3211 /usr/homes/chet/src/bash/src/parse.y:3211
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr ""
+
+#: parse.y:4398 /usr/homes/chet/src/bash/src/parse.y:4398
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr ""
+
+#: parse.y:4416 /usr/homes/chet/src/bash/src/parse.y:4416
+#, c-format
+msgid "syntax error near `%s'"
+msgstr ""
+
+#: parse.y:4426 /usr/homes/chet/src/bash/src/parse.y:4426
+msgid "syntax error: unexpected end of file"
+msgstr ""
+
+#: parse.y:4426 /usr/homes/chet/src/bash/src/parse.y:4426
+msgid "syntax error"
+msgstr ""
+
+#: parse.y:4488 /usr/homes/chet/src/bash/src/parse.y:4488
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr ""
+
+#: parse.y:4647 /usr/homes/chet/src/bash/src/parse.y:4647
+msgid "unexpected EOF while looking for matching `)'"
+msgstr ""
+
+#: pcomplete.c:987
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr ""
+
+#: pcomplete.c:1222
+msgid "ERROR: command_line_to_word_list returns NULL"
+msgstr ""
+
+#: pcomplib.c:177
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr ""
+
+#: print_cmd.c:259
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr ""
+
+#: print_cmd.c:1171
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr ""
+
+#: redir.c:98 redir.c:133
+msgid "file descriptor out of range"
+msgstr ""
+
+#: redir.c:140
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr ""
+
+#: redir.c:144
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr ""
+
+#: redir.c:149
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr ""
+
+#: redir.c:154
+#, c-format
+msgid "cannot create temp file for here document: %s"
+msgstr ""
+
+#: redir.c:508
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr ""
+
+#: redir.c:948
+msgid "redirection error: cannot duplicate fd"
+msgstr ""
+
+#: shell.c:300
+msgid "could not find /tmp, please create!"
+msgstr ""
+
+#: shell.c:304
+msgid "/tmp must be a valid directory name"
+msgstr ""
+
+#: shell.c:463 shell.c:735 builtins/common.c:156
+#, c-format
+msgid "%s: option requires an argument"
+msgstr ""
+
+#: shell.c:748 builtins/common.c:179
+#, c-format
+msgid "%s: invalid option"
+msgstr ""
+
+#: shell.c:837
+#, c-format
+msgid "%c%c: invalid option"
+msgstr ""
+
+#: shell.c:1588
+msgid "I have no name!"
+msgstr ""
+
+#: shell.c:1721
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr ""
+
+#: shell.c:1722
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+
+#: shell.c:1724
+msgid "GNU long options:\n"
+msgstr ""
+
+#: shell.c:1726
+#, c-format
+msgid "\t--%s\n"
+msgstr ""
+
+#: shell.c:1728
+msgid "Shell options:\n"
+msgstr ""
+
+#: shell.c:1729
+msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr ""
+
+#: shell.c:1732 builtins/mkbuiltins.c:131 builtins/set.def:2
+msgid "set"
+msgstr ""
+
+#: shell.c:1744
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr ""
+
+#: shell.c:1750
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr ""
+
+#: shell.c:1751
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr ""
+
+#: shell.c:1752
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr ""
+
+#: sig.c:483
+msgid "Bad code in sig.c: sigprocmask"
+msgstr ""
+
+#: siglist.c:47
+msgid "Bogus signal"
+msgstr ""
+
+#: siglist.c:50
+msgid "Hangup"
+msgstr ""
+
+#: siglist.c:54
+msgid "Interrupt"
+msgstr ""
+
+#: siglist.c:58
+msgid "Quit"
+msgstr ""
+
+#: siglist.c:62
+msgid "Illegal instruction"
+msgstr ""
+
+#: siglist.c:66
+msgid "BPT trace/trap"
+msgstr ""
+
+#: siglist.c:74
+msgid "ABORT instruction"
+msgstr ""
+
+#: siglist.c:78
+msgid "EMT instruction"
+msgstr ""
+
+#: siglist.c:82
+msgid "Floating point exception"
+msgstr ""
+
+#: siglist.c:86
+msgid "Killed"
+msgstr ""
+
+#: siglist.c:90
+msgid "Bus error"
+msgstr ""
+
+#: siglist.c:94
+msgid "Segmentation fault"
+msgstr ""
+
+#: siglist.c:98
+msgid "Bad system call"
+msgstr ""
+
+#: siglist.c:102
+msgid "Broken pipe"
+msgstr ""
+
+#: siglist.c:106
+msgid "Alarm clock"
+msgstr ""
+
+#: siglist.c:110
+msgid "Terminated"
+msgstr ""
+
+#: siglist.c:114
+msgid "Urgent IO condition"
+msgstr ""
+
+#: siglist.c:118
+msgid "Stopped (signal)"
+msgstr ""
+
+#: siglist.c:126
+msgid "Continue"
+msgstr ""
+
+#: siglist.c:134
+msgid "Child death or stop"
+msgstr ""
+
+#: siglist.c:138
+msgid "Stopped (tty input)"
+msgstr ""
+
+#: siglist.c:142
+msgid "Stopped (tty output)"
+msgstr ""
+
+#: siglist.c:146
+msgid "I/O ready"
+msgstr ""
+
+#: siglist.c:150
+msgid "CPU limit"
+msgstr ""
+
+#: siglist.c:154
+msgid "File limit"
+msgstr ""
+
+#: siglist.c:158
+msgid "Alarm (virtual)"
+msgstr ""
+
+#: siglist.c:162
+msgid "Alarm (profile)"
+msgstr ""
+
+#: siglist.c:166
+msgid "Window changed"
+msgstr ""
+
+#: siglist.c:170
+msgid "Record lock"
+msgstr ""
+
+#: siglist.c:174
+msgid "User signal 1"
+msgstr ""
+
+#: siglist.c:178
+msgid "User signal 2"
+msgstr ""
+
+#: siglist.c:182
+msgid "HFT input data pending"
+msgstr ""
+
+#: siglist.c:186
+msgid "power failure imminent"
+msgstr ""
+
+#: siglist.c:190
+msgid "system crash imminent"
+msgstr ""
+
+#: siglist.c:194
+msgid "migrate process to another CPU"
+msgstr ""
+
+#: siglist.c:198
+msgid "programming error"
+msgstr ""
+
+#: siglist.c:202
+msgid "HFT monitor mode granted"
+msgstr ""
+
+#: siglist.c:206
+msgid "HFT monitor mode retracted"
+msgstr ""
+
+#: siglist.c:210
+msgid "HFT sound sequence has completed"
+msgstr ""
+
+#: siglist.c:214
+msgid "Information request"
+msgstr ""
+
+#: siglist.c:222
+msgid "Unknown Signal #"
+msgstr ""
+
+#: siglist.c:224
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr ""
+
+#: subst.c:666 subst.c:752 subst.c:865 subst.c:1107 subst.c:1370
+msgid "$("
+msgstr ""
+
+#: subst.c:876
+msgid "$["
+msgstr ""
+
+#: subst.c:876
+msgid "["
+msgstr ""
+
+#: subst.c:876
+msgid "]"
+msgstr ""
+
+#: subst.c:1010 subst.c:1131
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr ""
+
+#: subst.c:2006
+#, c-format
+msgid "%s%s=(%s)\n"
+msgstr ""
+
+#: subst.c:2009 variables.c:2123
+#, c-format
+msgid "%s%s=%s\n"
+msgstr ""
+
+#: subst.c:2019
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr ""
+
+#: subst.c:3381
+msgid "sh-np"
+msgstr ""
+
+#: subst.c:3449
+#, c-format
+msgid "pid %ld: dev_fd_list:"
+msgstr ""
+
+#: subst.c:3455 /usr/local/share/bison/bison.simple:719
+#: /usr/local/share/bison/bison.simple:864
+#, c-format
+msgid " %d"
+msgstr ""
+
+#: subst.c:3515 subst.c:3531
+msgid "cannot make pipe for process substitution"
+msgstr ""
+
+#: subst.c:3562
+msgid "cannot make child for process substitution"
+msgstr ""
+
+#: subst.c:3605
+#, c-format
+msgid "cannot open named pipe %s for %s"
+msgstr ""
+
+#: subst.c:3606
+msgid "reading"
+msgstr ""
+
+#: subst.c:3606
+msgid "writing"
+msgstr ""
+
+#: subst.c:3613
+#, c-format
+msgid "cannout reset nodelay mode for fd %d"
+msgstr ""
+
+#: subst.c:3623
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr ""
+
+#: subst.c:3647
+msgid "process substitution"
+msgstr ""
+
+#: subst.c:3697
+msgid "read_comsub: ignored null byte in input"
+msgstr ""
+
+#: subst.c:3798
+msgid "cannot make pipe for command substitution"
+msgstr ""
+
+#: subst.c:3827
+msgid "cannot make child for command substitution"
+msgstr ""
+
+#: subst.c:3844
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr ""
+
+#: subst.c:3901
+msgid "command substitution"
+msgstr ""
+
+#: subst.c:4279
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr ""
+
+#: subst.c:4524
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr ""
+
+#: subst.c:4966 subst.c:4983
+msgid "#%:-=?+/}"
+msgstr ""
+
+#: subst.c:5033
+msgid "%:=+/"
+msgstr ""
+
+#: subst.c:5204
+#, c-format
+msgid "%s: bad substitution"
+msgstr ""
+
+#: subst.c:5204 builtins/history.def:247
+msgid "??"
+msgstr ""
+
+#: subst.c:5278
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr ""
+
+#: subst.c:5792
+msgid "<("
+msgstr ""
+
+#: subst.c:5792
+msgid ">("
+msgstr ""
+
+#: subst.c:6647
+#, c-format
+msgid "no match: %s"
+msgstr ""
+
+#: syntax.h:26
+msgid "\\`$\"\n"
+msgstr ""
+
+#: syntax.h:27
+msgid "\\`$"
+msgstr ""
+
+#: syntax.h:29
+msgid "()<>;&|"
+msgstr ""
+
+#: syntax.h:32
+msgid "\"`'"
+msgstr ""
+
+#: syntax.h:35
+msgid "$<>"
+msgstr ""
+
+#: syntax.h:41
+msgid "@*+?!"
+msgstr ""
+
+#: syntax.h:45
+msgid "*?[]^"
+msgstr ""
+
+#: test.c:152
+msgid "argument expected"
+msgstr ""
+
+#: test.c:161
+#, c-format
+msgid "%s: integer expression expected"
+msgstr ""
+
+#: test.c:176
+msgid "/dev/fd/"
+msgstr ""
+
+#: test.c:202
+msgid "/dev/std"
+msgstr ""
+
+#: test.c:206
+msgid "out"
+msgstr ""
+
+#: test.c:208
+msgid "err"
+msgstr ""
+
+#: test.c:359
+msgid "`)' expected"
+msgstr ""
+
+#: test.c:361
+#, c-format
+msgid "`)' expected, found %s"
+msgstr ""
+
+#: test.c:376 test.c:785 test.c:788
+#, c-format
+msgid "%s: unary operator expected"
+msgstr ""
+
+#: test.c:541 test.c:828
+#, c-format
+msgid "%s: binary operator expected"
+msgstr ""
+
+#: test.c:903 builtins/test.def:134
+msgid "missing `]'"
+msgstr ""
+
+#: test.c:919 builtins/common.c:132
+msgid "too many arguments"
+msgstr ""
+
+#: trap.c:171
+msgid "DEFAULT_SIG"
+msgstr ""
+
+#: trap.c:173
+msgid "IGNORE_SIG"
+msgstr ""
+
+#: trap.c:175
+msgid "IMPOSSIBLE_TRAP_HANDLER"
+msgstr ""
+
+#: trap.c:179 builtins/caller.def:94
+msgid "NULL"
+msgstr ""
+
+#: trap.c:192
+msgid "invalid signal number"
+msgstr ""
+
+#: trap.c:222 builtins/common.c:638 builtins/trap.def:218
+msgid "SIG"
+msgstr ""
+
+#: trap.c:307
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr ""
+
+#: trap.c:311
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+
+#: trap.c:347
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr ""
+
+#: trap.c:673
+msgid "exit trap"
+msgstr ""
+
+#: trap.c:781
+msgid "debug trap"
+msgstr ""
+
+#: trap.c:800
+msgid "error trap"
+msgstr ""
+
+#: trap.c:811
+msgid "return trap"
+msgstr ""
+
+#: trap.c:821
+msgid "interrupt trap"
+msgstr ""
+
+#: variables.c:287
+msgid "() {"
+msgstr ""
+
+#: variables.c:309
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr ""
+
+#: variables.c:370
+msgid "NODE"
+msgstr ""
+
+#: variables.c:383
+msgid "# "
+msgstr ""
+
+#: variables.c:387
+msgid "+ "
+msgstr ""
+
+#: variables.c:390 variables.c:2867 variables.c:3464 variables.c:3500
+#: variables.c:3632 variables.c:3735
+msgid "IFS"
+msgstr ""
+
+#: variables.c:401
+msgid "600"
+msgstr ""
+
+#: variables.c:401
+msgid "60"
+msgstr ""
+
+#: variables.c:409 variables.c:3647 variables.c:3955 builtins/getopts.def:231
+msgid "OPTIND"
+msgstr ""
+
+#: variables.c:411 variables.c:3646 variables.c:3976
+msgid "OPTERR"
+msgstr ""
+
+#: variables.c:420
+msgid "BASH"
+msgstr ""
+
+#: variables.c:430
+msgid "BASH_VERSION"
+msgstr ""
+
+#: variables.c:436
+msgid "BASH_EXECUTION_STRING"
+msgstr ""
+
+#: variables.c:452
+msgid "~/.sh_history"
+msgstr ""
+
+#: variables.c:452
+msgid "~/.bash_history"
+msgstr ""
+
+#: variables.c:457
+msgid "500"
+msgstr ""
+
+#: variables.c:469 variables.c:3633 builtins/set.def:313 builtins/set.def:315
+#: builtins/set.def:316
+msgid "IGNOREEOF"
+msgstr ""
+
+#: variables.c:471 variables.c:3669 builtins/set.def:191 builtins/set.def:311
+msgid "ignoreeof"
+msgstr ""
+
+#: variables.c:527
+msgid "HOSTTYPE"
+msgstr ""
+
+#: variables.c:528
+msgid "OSTYPE"
+msgstr ""
+
+#: variables.c:529
+msgid "MACHTYPE"
+msgstr ""
+
+#: variables.c:531
+msgid "HOSTNAME"
+msgstr ""
+
+#: variables.c:660 variables.c:694
+msgid "SHLVL"
+msgstr ""
+
+#: variables.c:669
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr ""
+
+#: variables.c:734
+msgid "shell-init"
+msgstr ""
+
+#: variables.c:758 variables.c:761
+msgid "PPID"
+msgstr ""
+
+#: variables.c:772 variables.c:775
+msgid "UID"
+msgstr ""
+
+#: variables.c:782 variables.c:785
+msgid "EUID"
+msgstr ""
+
+#: variables.c:798 variables.c:800
+msgid "BASH_VERSINFO"
+msgstr ""
+
+#: variables.c:893
+#, c-format
+msgid "%s="
+msgstr ""
+
+#: variables.c:1087 variables.c:1093
+msgid "SECONDS"
+msgstr ""
+
+#: variables.c:1395
+msgid "BASH_COMMAND"
+msgstr ""
+
+#: variables.c:1396
+msgid "BASH_SUBSHELL"
+msgstr ""
+
+#: variables.c:1398
+msgid "RANDOM"
+msgstr ""
+
+#: variables.c:1399
+msgid "LINENO"
+msgstr ""
+
+#: variables.c:1402
+msgid "HISTCMD"
+msgstr ""
+
+#: variables.c:1406
+msgid "COMP_WORDBREAKS"
+msgstr ""
+
+#: variables.c:1410
+msgid "DIRSTACK"
+msgstr ""
+
+#: variables.c:1414
+msgid "GROUPS"
+msgstr ""
+
+#: variables.c:1417 variables.c:3554 variables.c:3578 builtins/evalfile.c:101
+msgid "BASH_ARGC"
+msgstr ""
+
+#: variables.c:1418 variables.c:3553 variables.c:3577 builtins/evalfile.c:100
+msgid "BASH_ARGV"
+msgstr ""
+
+#: variables.c:1609
+msgid "make_local_variable: no function context at current scope"
+msgstr ""
+
+#: variables.c:2708
+msgid "all_local_variables: no function context at current scope"
+msgstr ""
+
+#: variables.c:2922 variables.c:2931
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr ""
+
+#: variables.c:2937
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr ""
+
+#: variables.c:3071
+msgid ") {"
+msgstr ""
+
+#: variables.c:3222
+msgid "_="
+msgstr ""
+
+#: variables.c:3242
+msgid "_GNU_nonoption_argv_flags_"
+msgstr ""
+
+#: variables.c:3362
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr ""
+
+#: variables.c:3375
+msgid "pop_var_context: no global_variables context"
+msgstr ""
+
+#: variables.c:3441
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr ""
+
+#: variables.c:3625 builtins/history.def:282
+msgid "HISTTIMEFORMAT"
+msgstr ""
+
+#: variables.c:3635
+msgid "LANG"
+msgstr ""
+
+#: variables.c:3636
+msgid "LC_ALL"
+msgstr ""
+
+#: variables.c:3654
+msgid "TERMCAP"
+msgstr ""
+
+#: variables.c:3655
+msgid "TERMINFO"
+msgstr ""
+
+#: variables.c:3662 lib/sh/strftime.c:185 lib/sh/strftime.c:187
+msgid "TZ"
+msgstr ""
+
+#: variables.c:3867
+msgid "ignorespace"
+msgstr ""
+
+#: variables.c:3869
+msgid "ignoredups"
+msgstr ""
+
+#: variables.c:3871
+msgid "ignoreboth"
+msgstr ""
+
+#: variables.c:3873
+msgid "erasedups"
+msgstr ""
+
+#: version.c:60 version.c:62
+#, c-format
+msgid "%s.%d(%d)-%s"
+msgstr ""
+
+#: version.c:66 version.c:68
+#, c-format
+msgid "%s.%d(%d)"
+msgstr ""
+
+#: version.c:78
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr ""
+
+#: version.c:80
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: xmalloc.c:91
+#, c-format
+msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr ""
+
+#: xmalloc.c:93
+#, c-format
+msgid "xmalloc: cannot allocate %lu bytes"
+msgstr ""
+
+#: xmalloc.c:113
+#, c-format
+msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+msgstr ""
+
+#: xmalloc.c:115
+#, c-format
+msgid "xrealloc: cannot allocate %lu bytes"
+msgstr ""
+
+#: xmalloc.c:149
+#, c-format
+msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr ""
+
+#: xmalloc.c:151
+#, c-format
+msgid "xmalloc: %s:%d: cannot allocate %lu bytes"
+msgstr ""
+
+#: xmalloc.c:173
+#, c-format
+msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
+msgstr ""
+
+#: xmalloc.c:175
+#, c-format
+msgid "xrealloc: %s:%d: cannot allocate %lu bytes"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:469
+msgid "error"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:469
+msgid "$undefined."
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:469
+msgid "IF"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:469
+msgid "THEN"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:469
+msgid "ELSE"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:469
+msgid "ELIF"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:469
+msgid "FI"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:469
+msgid "CASE"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:470
+msgid "ESAC"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:470
+msgid "FOR"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:470
+msgid "SELECT"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:470
+msgid "WHILE"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:470
+msgid "UNTIL"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:470
+msgid "DO"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:470
+msgid "DONE"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:470 builtins/mkbuiltins.c:425
+msgid "FUNCTION"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:471
+msgid "COND_START"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:471
+msgid "COND_END"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:471
+msgid "COND_ERROR"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:471
+msgid "IN"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:471
+msgid "BANG"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:471
+msgid "TIME"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:471
+msgid "TIMEOPT"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:472
+msgid "WORD"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:472
+msgid "ASSIGNMENT_WORD"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:472
+msgid "NUMBER"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:472
+msgid "ARITH_CMD"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:472
+msgid "ARITH_FOR_EXPRS"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:473
+msgid "COND_CMD"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:473
+msgid "AND_AND"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:473
+msgid "OR_OR"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:473
+msgid "GREATER_GREATER"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:473
+msgid "LESS_LESS"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:474
+msgid "LESS_AND"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:474
+msgid "LESS_LESS_LESS"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:474
+msgid "GREATER_AND"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:474
+msgid "SEMI_SEMI"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:475
+msgid "LESS_LESS_MINUS"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:475
+msgid "AND_GREATER"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:475
+msgid "LESS_GREATER"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:475
+msgid "GREATER_BAR"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:475
+msgid "'&'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "';'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "'\\n'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "yacc_EOF"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "'|'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "'>'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "'<'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "'-'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "'{'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:476
+msgid "'}'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:477
+msgid "'('"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:477
+msgid "')'"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:477
+msgid "inputunit"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:477
+msgid "word_list"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:477
+msgid "redirection"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:478
+msgid "simple_command_element"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:478
+msgid "redirection_list"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:478
+msgid "simple_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:479 builtins/command.def:2
+#: builtins/complete.def:82
+msgid "command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:479
+msgid "shell_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:479
+msgid "for_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:479
+msgid "arith_for_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:480
+msgid "select_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:480
+msgid "case_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:480
+msgid "function_def"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:480
+msgid "function_body"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:481
+msgid "subshell"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:481
+msgid "if_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:481
+msgid "group_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:481
+msgid "arith_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:482
+msgid "cond_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:482
+msgid "elif_clause"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:482
+msgid "case_clause"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:482
+msgid "pattern_list"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:483
+msgid "case_clause_sequence"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:483
+msgid "pattern"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:483
+msgid "list"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:483
+msgid "compound_list"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:483
+msgid "list0"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:484
+msgid "list1"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:484
+msgid "simple_list_terminator"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:484
+msgid "list_terminator"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:484
+msgid "newline_list"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:485
+msgid "simple_list"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:485
+msgid "simple_list1"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:485
+msgid "pipeline_command"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:485
+msgid "pipeline"
+msgstr ""
+
+#: /usr/homes/chet/src/bash/src/parse.y:486
+msgid "timespec"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:156
+msgid "syntax error: cannot back up"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:442
+msgid "Starting parse\n"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:492
+#: /usr/local/share/bison/bison.simple:499
+#: /usr/local/share/bison/bison.simple:924
+msgid "parser stack overflow"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:538
+#, c-format
+msgid "Stack size increased to %lu\n"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:545
+#, c-format
+msgid "Entering state %d\n"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:572
+msgid "Reading a token: "
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:583
+msgid "Now at end of input.\n"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:594
+#, c-format
+msgid "Next token is %d (%s"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:633
+#, c-format
+msgid "Shifting token %d (%s), "
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:695
+#, c-format
+msgid "Reducing via rule %d (line %d), "
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:701
+#, c-format
+msgid " -> %s\n"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:717
+msgid "state stack now"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:769
+#: /usr/local/share/bison/bison.simple:774
+msgid "parse error, unexpected "
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:785
+msgid ", expecting "
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:785
+msgid " or "
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:795
+msgid "parse error; also virtual memory exhausted"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:799
+msgid "parse error"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:816
+#, c-format
+msgid "Discarding token %d (%s).\n"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:862
+msgid "Error: state stack now"
+msgstr ""
+
+#: /usr/local/share/bison/bison.simple:895
+msgid "Shifting error token, "
+msgstr ""
+
+#: builtins/common.c:102
+#, c-format
+msgid "line %d: "
+msgstr ""
+
+#: builtins/common.c:119
+#, c-format
+msgid "%s: usage: "
+msgstr ""
+
+#: builtins/common.c:163
+#, c-format
+msgid "%s: numeric argument required"
+msgstr ""
+
+#: builtins/common.c:170
+#, c-format
+msgid "%s: not found"
+msgstr ""
+
+#: builtins/common.c:186
+#, c-format
+msgid "%s: invalid option name"
+msgstr ""
+
+#: builtins/common.c:200
+#, c-format
+msgid "%s: invalid number"
+msgstr ""
+
+#: builtins/common.c:207
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr ""
+
+#: builtins/common.c:214
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr ""
+
+#: builtins/common.c:229
+#, c-format
+msgid "%s: %s out of range"
+msgstr ""
+
+#: builtins/common.c:229 builtins/common.c:231
+msgid "argument"
+msgstr ""
+
+#: builtins/common.c:231
+#, c-format
+msgid "%s out of range"
+msgstr ""
+
+#: builtins/common.c:239
+#, c-format
+msgid "%s: no such job"
+msgstr ""
+
+#: builtins/common.c:247
+#, c-format
+msgid "%s: no job control"
+msgstr ""
+
+#: builtins/common.c:249
+msgid "no job control"
+msgstr ""
+
+#: builtins/common.c:259
+#, c-format
+msgid "%s: restricted"
+msgstr ""
+
+#: builtins/common.c:269
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr ""
+
+#: builtins/common.c:417
+msgid "`'"
+msgstr ""
+
+#: builtins/common.c:480
+#, c-format
+msgid "%s: could not get current directory: %s: %s\n"
+msgstr ""
+
+#: builtins/common.c:547 builtins/common.c:549
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr ""
+
+#: builtins/common.c:631 builtins/common.c:680 builtins/trap.def:214
+msgid "SIGJUNK"
+msgstr ""
+
+#: builtins/common.c:631 builtins/common.c:680
+msgid "Unknown"
+msgstr ""
+
+#: builtins/common.c:644
+#, c-format
+msgid "%2d) %s"
+msgstr ""
+
+#: builtins/evalfile.c:132
+#, c-format
+msgid "%s: not a regular file"
+msgstr ""
+
+#: builtins/evalfile.c:140
+#, c-format
+msgid "%s: file is too large"
+msgstr ""
+
+#: builtins/evalfile.c:178 builtins/evalfile.c:237
+msgid "_evalfile"
+msgstr ""
+
+#: builtins/evalfile.c:204 builtins/mkbuiltins.c:130 builtins/source.def:2
+#: builtins/source.def:143 builtins/source.def:170
+msgid "source"
+msgstr ""
+
+#: builtins/evalstring.c:76 builtins/evalstring.c:103
+#: builtins/evalstring.c:287
+msgid "parse_and_execute_top"
+msgstr ""
+
+#: builtins/evalstring.c:181 builtins/evalstring.c:189
+#: builtins/evalstring.c:223 builtins/evalstring.c:272
+msgid "pe_dispose"
+msgstr ""
+
+#: builtins/evalstring.c:205
+msgid "parse_and_execute"
+msgstr ""
+
+#: builtins/getopt.c:108
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: builtins/getopt.c:109
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: builtins/getopt.c:231
+msgid "sh_getopt_debug_restore_state: resetting nextchar"
+msgstr ""
+
+#: builtins/getopt.c:254
+msgid "abc:d:0123456789"
+msgstr ""
+
+#: builtins/getopt.c:271
+msgid "digits occur in two different argv-elements.\n"
+msgstr ""
+
+#: builtins/getopt.c:273
+#, c-format
+msgid "option %c\n"
+msgstr ""
+
+#: builtins/getopt.c:277
+msgid "option a\n"
+msgstr ""
+
+#: builtins/getopt.c:281
+msgid "option b\n"
+msgstr ""
+
+#: builtins/getopt.c:285
+#, c-format
+msgid "option c with value `%s'\n"
+msgstr ""
+
+#: builtins/getopt.c:292
+#, c-format
+msgid "?? sh_getopt returned character code 0%o ??\n"
+msgstr ""
+
+#: builtins/getopt.c:298
+msgid "non-option ARGV-elements: "
+msgstr ""
+
+#: builtins/mkbuiltins.c:47
+msgid "builtins.texi"
+msgstr ""
+
+#: builtins/mkbuiltins.c:130 builtins/break.def:2
+msgid "break"
+msgstr ""
+
+#: builtins/mkbuiltins.c:130 builtins/break.def:2
+msgid "continue"
+msgstr ""
+
+#: builtins/mkbuiltins.c:130 builtins/eval.def:2 builtins/eval.def:52
+msgid "eval"
+msgstr ""
+
+#: builtins/mkbuiltins.c:130 builtins/exec.def:2
+msgid "exec"
+msgstr ""
+
+#: builtins/mkbuiltins.c:131 builtins/mkbuiltins.c:138
+#: builtins/complete.def:86 builtins/setattr.def:2
+msgid "export"
+msgstr ""
+
+#: builtins/mkbuiltins.c:131 builtins/mkbuiltins.c:138 builtins/setattr.def:2
+msgid "readonly"
+msgstr ""
+
+#: builtins/mkbuiltins.c:131 builtins/return.def:2
+msgid "return"
+msgstr ""
+
+#: builtins/mkbuiltins.c:131 builtins/shift.def:2
+msgid "shift"
+msgstr ""
+
+#: builtins/mkbuiltins.c:131 builtins/set.def:2
+msgid "unset"
+msgstr ""
+
+#: builtins/mkbuiltins.c:138 builtins/alias.def:2 builtins/complete.def:78
+#: builtins/type.def:228
+msgid "alias"
+msgstr ""
+
+#: builtins/mkbuiltins.c:138 builtins/declare.def:2
+msgid "declare"
+msgstr ""
+
+#: builtins/mkbuiltins.c:138 builtins/declare.def:2
+msgid "local"
+msgstr ""
+
+#: builtins/mkbuiltins.c:138
+msgid "typeset"
+msgstr ""
+
+#: builtins/mkbuiltins.c:194
+msgid "-externfile"
+msgstr ""
+
+#: builtins/mkbuiltins.c:196
+msgid "-structfile"
+msgstr ""
+
+#: builtins/mkbuiltins.c:198
+msgid "-noproduction"
+msgstr ""
+
+#: builtins/mkbuiltins.c:200
+msgid "-document"
+msgstr ""
+
+#: builtins/mkbuiltins.c:202
+msgid "-D"
+msgstr ""
+
+#: builtins/mkbuiltins.c:218
+msgid "-documentonly"
+msgstr ""
+
+#: builtins/mkbuiltins.c:223
+msgid "-H"
+msgstr ""
+
+#: builtins/mkbuiltins.c:230
+#, c-format
+msgid "%s: Unknown flag %s.\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:245
+#, c-format
+msgid "mk-%ld"
+msgstr ""
+
+#: builtins/mkbuiltins.c:266
+#, c-format
+msgid "@c Table of builtins created with %s.\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:268
+msgid "@ftable @asis\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:305
+msgid "@end ftable\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:423
+msgid "BUILTIN"
+msgstr ""
+
+#: builtins/mkbuiltins.c:424
+msgid "DOCNAME"
+msgstr ""
+
+#: builtins/mkbuiltins.c:426
+msgid "SHORT_DOC"
+msgstr ""
+
+#: builtins/mkbuiltins.c:428
+msgid "COMMENT"
+msgstr ""
+
+#: builtins/mkbuiltins.c:429
+msgid "DEPENDS_ON"
+msgstr ""
+
+#: builtins/mkbuiltins.c:430
+msgid "PRODUCES"
+msgstr ""
+
+#: builtins/mkbuiltins.c:431
+msgid "END"
+msgstr ""
+
+#: builtins/mkbuiltins.c:500
+#, c-format
+msgid "mkbuiltins: %s: skipping zero-length file\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:551
+#, c-format
+msgid "Unknown directive `%s'"
+msgstr ""
+
+#: builtins/mkbuiltins.c:577
+#, c-format
+msgid "#line %d \"%s\"\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:580
+#, c-format
+msgid "#line %d \"%s%s\"\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:582 builtins/mkbuiltins.c:954
+msgid "./"
+msgstr ""
+
+#: builtins/mkbuiltins.c:703
+#, c-format
+msgid "%s requires an argument"
+msgstr ""
+
+#: builtins/mkbuiltins.c:715
+#, c-format
+msgid "%s must be inside of a $BUILTIN block"
+msgstr ""
+
+#: builtins/mkbuiltins.c:740
+msgid "(implied LONGDOC)"
+msgstr ""
+
+#: builtins/mkbuiltins.c:766
+#, c-format
+msgid "%s found before $END"
+msgstr ""
+
+#: builtins/mkbuiltins.c:812
+msgid "syntax error: no current builtin for $FUNCTION directive"
+msgstr ""
+
+#: builtins/mkbuiltins.c:816
+#, c-format
+msgid "%s already has a function (%s)"
+msgstr ""
+
+#: builtins/mkbuiltins.c:836
+#, c-format
+msgid "%s already had a docname (%s)"
+msgstr ""
+
+#: builtins/mkbuiltins.c:856
+#, c-format
+msgid "%s already has short documentation (%s)"
+msgstr ""
+
+#: builtins/mkbuiltins.c:910
+#, c-format
+msgid "%s already has a %s definition"
+msgstr ""
+
+#: builtins/mkbuiltins.c:923
+#, c-format
+msgid "/* %s, created from %s. */\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:955
+#, c-format
+msgid "%s:%d:"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1010
+msgid "mkbuiltins: out of virtual memory\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1066
+msgid "/* builtins.c -- the built in shell commands. */"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1068
+msgid "/* This file is manufactured by ./mkbuiltins, and should not be"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1069
+msgid "   edited by hand.  See the source to mkbuiltins for details. */"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1071
+msgid "/* Copyright (C) 1987-2002 Free Software Foundation, Inc."
+msgstr ""
+
+#: builtins/mkbuiltins.c:1073
+msgid "   This file is part of GNU Bash, the Bourne Again SHell."
+msgstr ""
+
+#: builtins/mkbuiltins.c:1075
+msgid "   Bash is free software; you can redistribute it and/or modify it"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1076
+msgid "   under the terms of the GNU General Public License as published by"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1077
+msgid "   the Free Software Foundation; either version 2, or (at your option)"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1078
+msgid "   any later version."
+msgstr ""
+
+#: builtins/mkbuiltins.c:1080
+msgid "   Bash is distributed in the hope that it will be useful, but WITHOUT"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1081
+msgid "   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1082
+msgid "   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1083
+msgid "   License for more details."
+msgstr ""
+
+#: builtins/mkbuiltins.c:1085
+msgid "   You should have received a copy of the GNU General Public License"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1086
+msgid "   along with Bash; see the file COPYING.  If not, write to the Free"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1087
+msgid ""
+"   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1089
+msgid "/* The list of shell builtins.  Each element is name, function, flags,"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1090
+msgid ""
+"   long-doc, short-doc.  The long-doc field contains a pointer to an array"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1091
+msgid ""
+"   of help lines.  The function takes a WORD_LIST *; the first word in the"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1092
+msgid "   list is the first arg to the command.  The list has already had word"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1093
+msgid "   expansion performed."
+msgstr ""
+
+#: builtins/mkbuiltins.c:1095
+msgid "   Functions which need to look at only the simple commands (e.g."
+msgstr ""
+
+#: builtins/mkbuiltins.c:1096
+msgid "   the enable_builtin ()), should ignore entries where"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1097
+msgid ""
+"   (array[i].function == (sh_builtin_func_t *)NULL).  Such entries are for"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1098
+msgid ""
+"   the list of shell reserved control structures, like `if' and `while'."
+msgstr ""
+
+#: builtins/mkbuiltins.c:1099
+msgid "   The end of the list is denoted with a NULL name field. */"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1101
+msgid "#include \"../builtins.h\""
+msgstr ""
+
+#: builtins/mkbuiltins.c:1106
+msgid ""
+"  { (char *)0x0, (sh_builtin_func_t *)0x0, 0, (char **)0x0, (char *)0x0 }"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1107
+msgid "};"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1109
+msgid "struct builtin *shell_builtins = static_shell_builtins;"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1110
+msgid "struct builtin *current_builtin;"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1112
+msgid "int num_shell_builtins ="
+msgstr ""
+
+#: builtins/mkbuiltins.c:1113
+msgid "\tsizeof (static_shell_builtins) / sizeof (struct builtin) - 1;"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1130
+#, c-format
+msgid "#include \"%s\"\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1131 builtins/mkbuiltins.c:1138
+msgid "builtext.h"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1132
+msgid ""
+"\n"
+"struct builtin static_shell_builtins[] = {\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1137
+#, c-format
+msgid "/* %s - The list of builtins found in libbuiltins.a. */\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1188
+#, c-format
+msgid "extern int %s __P((WORD_LIST *));\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1191
+#, c-format
+msgid "extern char * const %s_doc[];\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1198
+#, c-format
+msgid "  { \"%s\", "
+msgstr ""
+
+#: builtins/mkbuiltins.c:1201
+#, c-format
+msgid "%s, "
+msgstr ""
+
+#: builtins/mkbuiltins.c:1203
+msgid "(sh_builtin_func_t *)0x0, "
+msgstr ""
+
+#: builtins/mkbuiltins.c:1205
+#, c-format
+msgid "%s%s%s, %s_doc,\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1206
+msgid "BUILTIN_ENABLED | STATIC_BUILTIN"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1207
+msgid " | SPECIAL_BUILTIN"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1208
+msgid " | ASSIGNMENT_BUILTIN"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1212
+#, c-format
+msgid "     \"%s\", (char *)NULL },\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1235
+#, c-format
+msgid "@item %s\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1263
+#, c-format
+msgid "char * const %s_doc[] ="
+msgstr ""
+
+#: builtins/mkbuiltins.c:1269 lib/sh/mailstat.c:126
+#, c-format
+msgid "%s/%s"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1299
+msgid "#if "
+msgstr ""
+
+#: builtins/mkbuiltins.c:1306
+#, c-format
+msgid "!defined (%s)"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1308
+#, c-format
+msgid "defined (%s)"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1330
+msgid "#endif /* "
+msgstr ""
+
+#: builtins/mkbuiltins.c:1340
+msgid " */\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1360
+msgid ""
+" {\n"
+"#if defined (HELP_BUILTIN)\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1373
+msgid "  \""
+msgstr ""
+
+#: builtins/mkbuiltins.c:1387
+#, c-format
+msgid "\\%c"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1391 builtins/mkbuiltins.c:1410
+#, c-format
+msgid "%c"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1395
+msgid "\",\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1406
+#, c-format
+msgid "@%c"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1420
+msgid ""
+"#endif /* HELP_BUILTIN */\n"
+"  (char *)NULL\n"
+"};\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1432
+msgid "helpfiles"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1435
+msgid "write_helpfiles: helpfiles: cannot create directory\n"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1439
+msgid "helpfiles/"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1446
+#, c-format
+msgid "helpfiles/%s"
+msgstr ""
+
+#: builtins/mkbuiltins.c:1451
+#, c-format
+msgid "write_helpfiles: cannot open %s\n"
+msgstr ""
+
+#: builtins/alias.def:2
+msgid "unalias"
+msgstr ""
+
+#: builtins/alias.def:73
+msgid "p"
+msgstr ""
+
+#: builtins/alias.def:160
+msgid "a"
+msgstr ""
+
+#: builtins/alias.def:210
+msgid "alias "
+msgstr ""
+
+#: builtins/bind.def:2
+msgid "bind"
+msgstr ""
+
+#: builtins/bind.def:121 builtins/bind.def:265
+msgid "bind_builtin"
+msgstr ""
+
+#: builtins/bind.def:127
+msgid "lvpVPsSf:q:u:m:r:x:"
+msgstr ""
+
+#: builtins/bind.def:192
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr ""
+
+#: builtins/bind.def:231
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr ""
+
+#: builtins/bind.def:246
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr ""
+
+#: builtins/bind.def:281 builtins/bind.def:311
+#, c-format
+msgid "`%s': unknown function name"
+msgstr ""
+
+#: builtins/bind.def:289
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr ""
+
+#: builtins/bind.def:293
+#, c-format
+msgid "%s can be invoked via "
+msgstr ""
+
+#: builtins/bind.def:295
+#, c-format
+msgid "\"%s\"%s"
+msgstr ""
+
+#: builtins/bind.def:295 builtins/help.def:106
+msgid ", "
+msgstr ""
+
+#: builtins/bind.def:295
+msgid ".\n"
+msgstr ""
+
+#: builtins/bind.def:297
+msgid "...\n"
+msgstr ""
+
+#: builtins/break.def:71 builtins/break.def:106
+msgid "loop count"
+msgstr ""
+
+#: builtins/break.def:126
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr ""
+
+#: builtins/builtin.def:2 builtins/complete.def:81 builtins/type.def:294
+msgid "builtin"
+msgstr ""
+
+#: builtins/caller.def:2 builtins/caller.def:138
+msgid "caller"
+msgstr ""
+
+#: builtins/caller.def:31
+msgid "$line $filename"
+msgstr ""
+
+#: builtins/caller.def:32
+msgid "$line $subroutine $filename"
+msgstr ""
+
+#: builtins/caller.def:70
+msgid "1 NULL\n"
+msgstr ""
+
+#: builtins/caller.def:94
+#, c-format
+msgid "%s %s\n"
+msgstr ""
+
+#: builtins/caller.def:110
+#, c-format
+msgid "%s %s %s\n"
+msgstr ""
+
+#: builtins/caller.def:126
+msgid "Returns the context of the current subroutine call."
+msgstr ""
+
+#: builtins/caller.def:128
+msgid "Without EXPR, returns returns \"$line $filename\".  With EXPR,"
+msgstr ""
+
+#: builtins/caller.def:129
+msgid "returns \"$line $subroutine $filename\"; this extra information"
+msgstr ""
+
+#: builtins/caller.def:130
+msgid "can be used used to provide a stack trace."
+msgstr ""
+
+#: builtins/caller.def:132
+msgid "The value of EXPR indicates how many call frames to go back before the"
+msgstr ""
+
+#: builtins/caller.def:133
+msgid "current one; the top frame is frame 0."
+msgstr ""
+
+#: builtins/caller.def:142
+msgid "caller [EXPR]"
+msgstr ""
+
+#: builtins/cd.def:2 builtins/cd.def:96 builtins/cd.def:130
+msgid "cd"
+msgstr ""
+
+#: builtins/cd.def:2 builtins/cd.def:338
+msgid "pwd"
+msgstr ""
+
+#: builtins/cd.def:105
+msgid "OLDPWD="
+msgstr ""
+
+#: builtins/cd.def:112
+msgid "PWD="
+msgstr ""
+
+#: builtins/cd.def:160 builtins/cd.def:318
+msgid "LP"
+msgstr ""
+
+#: builtins/cd.def:187
+msgid "HOME not set"
+msgstr ""
+
+#: builtins/cd.def:199
+msgid "OLDPWD not set"
+msgstr ""
+
+#: builtins/cd.def:210
+msgid "CDPATH"
+msgstr ""
+
+#: builtins/cd.def:349
+#, c-format
+msgid "write error: %s"
+msgstr ""
+
+#: builtins/cd.def:378
+msgid "chdir"
+msgstr ""
+
+#: builtins/command.def:29
+msgid "command ls"
+msgstr ""
+
+#: builtins/command.def:73
+msgid "pvV"
+msgstr ""
+
+#: builtins/command.def:120 builtins/command.def:160
+msgid "command_builtin"
+msgstr ""
+
+#: builtins/complete.def:2
+msgid "complete"
+msgstr ""
+
+#: builtins/complete.def:2 builtins/complete.def:589
+msgid "compgen"
+msgstr ""
+
+#: builtins/complete.def:79 builtins/complete.def:458
+msgid "arrayvar"
+msgstr ""
+
+#: builtins/complete.def:80 builtins/complete.def:459
+msgid "binding"
+msgstr ""
+
+#: builtins/complete.def:83
+msgid "directory"
+msgstr ""
+
+#: builtins/complete.def:84 builtins/complete.def:460
+msgid "disabled"
+msgstr ""
+
+#: builtins/complete.def:85 builtins/complete.def:461
+msgid "enabled"
+msgstr ""
+
+#: builtins/complete.def:87 builtins/type.def:315 builtins/type.def:335
+#: builtins/type.def:380
+msgid "file"
+msgstr ""
+
+#: builtins/complete.def:89 builtins/complete.def:463
+msgid "helptopic"
+msgstr ""
+
+#: builtins/complete.def:90 builtins/complete.def:464
+msgid "hostname"
+msgstr ""
+
+#: builtins/complete.def:91
+msgid "group"
+msgstr ""
+
+#: builtins/complete.def:92
+msgid "job"
+msgstr ""
+
+#: builtins/complete.def:93 builtins/set.def:193 builtins/type.def:249
+msgid "keyword"
+msgstr ""
+
+#: builtins/complete.def:94 builtins/complete.def:465
+msgid "running"
+msgstr ""
+
+#: builtins/complete.def:95
+msgid "service"
+msgstr ""
+
+#: builtins/complete.def:96 builtins/complete.def:466
+msgid "setopt"
+msgstr ""
+
+#: builtins/complete.def:97 builtins/complete.def:467
+msgid "shopt"
+msgstr ""
+
+#: builtins/complete.def:98 builtins/complete.def:468
+msgid "signal"
+msgstr ""
+
+#: builtins/complete.def:99 builtins/complete.def:469
+msgid "stopped"
+msgstr ""
+
+#: builtins/complete.def:100
+msgid "user"
+msgstr ""
+
+#: builtins/complete.def:101 builtins/set.def:787
+msgid "variable"
+msgstr ""
+
+#: builtins/complete.def:110 builtins/complete.def:434
+msgid "bashdefault"
+msgstr ""
+
+#: builtins/complete.def:111 builtins/complete.def:435
+msgid "default"
+msgstr ""
+
+#: builtins/complete.def:112 builtins/complete.def:436
+msgid "dirnames"
+msgstr ""
+
+#: builtins/complete.def:113 builtins/complete.def:437
+msgid "filenames"
+msgstr ""
+
+#: builtins/complete.def:114 builtins/complete.def:438
+msgid "nospace"
+msgstr ""
+
+#: builtins/complete.def:115 builtins/complete.def:439
+msgid "plusdirs"
+msgstr ""
+
+#: builtins/complete.def:170
+msgid "abcdefgjko:prsuvA:G:W:P:S:X:F:C:"
+msgstr ""
+
+#: builtins/complete.def:183
+msgid "-r"
+msgstr ""
+
+#: builtins/complete.def:250
+#, c-format
+msgid "%s: invalid action name"
+msgstr ""
+
+#: builtins/complete.def:380 builtins/complete.def:523
+#, c-format
+msgid "%s: no completion specification"
+msgstr ""
+
+#: builtins/complete.def:392 builtins/complete.def:400
+#, c-format
+msgid "%s %s "
+msgstr ""
+
+#: builtins/complete.def:412
+#, c-format
+msgid "-A %s "
+msgstr ""
+
+#: builtins/complete.def:418
+#, c-format
+msgid "-o %s "
+msgstr ""
+
+#: builtins/complete.def:429
+msgid "complete "
+msgstr ""
+
+#: builtins/complete.def:444
+msgid "-a"
+msgstr ""
+
+#: builtins/complete.def:445
+msgid "-b"
+msgstr ""
+
+#: builtins/complete.def:447
+msgid "-d"
+msgstr ""
+
+#: builtins/complete.def:448
+msgid "-e"
+msgstr ""
+
+#: builtins/complete.def:449
+msgid "-f"
+msgstr ""
+
+#: builtins/complete.def:450
+msgid "-g"
+msgstr ""
+
+#: builtins/complete.def:451
+msgid "-j"
+msgstr ""
+
+#: builtins/complete.def:452
+msgid "-k"
+msgstr ""
+
+#: builtins/complete.def:453 builtins/shopt.def:325
+msgid "-s"
+msgstr ""
+
+#: builtins/complete.def:454 builtins/shopt.def:325
+msgid "-u"
+msgstr ""
+
+#: builtins/complete.def:455
+msgid "-v"
+msgstr ""
+
+#: builtins/complete.def:474
+msgid "-G"
+msgstr ""
+
+#: builtins/complete.def:475
+msgid "-W"
+msgstr ""
+
+#: builtins/complete.def:476
+msgid "-P"
+msgstr ""
+
+#: builtins/complete.def:477
+msgid "-S"
+msgstr ""
+
+#: builtins/complete.def:478
+msgid "-X"
+msgstr ""
+
+#: builtins/complete.def:481
+msgid "-F"
+msgstr ""
+
+#: builtins/complete.def:482
+msgid "-C"
+msgstr ""
+
+#: builtins/complete.def:570
+msgid "warning: -F option may not work as you expect"
+msgstr ""
+
+#: builtins/complete.def:572
+msgid "warning: -C option may not work as you expect"
+msgstr ""
+
+#: builtins/declare.def:104
+msgid "can only be used in a function"
+msgstr ""
+
+#: builtins/declare.def:110
+msgid "+afiprtxF"
+msgstr ""
+
+#: builtins/declare.def:112
+msgid "+fiprtxF"
+msgstr ""
+
+#: builtins/declare.def:294
+msgid "cannot use `-f' to make functions"
+msgstr ""
+
+#: builtins/declare.def:319
+#, c-format
+msgid "%s %d %s\n"
+msgstr ""
+
+#: builtins/declare.def:388
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr ""
+
+#: builtins/echo.def:2
+msgid "echo"
+msgstr ""
+
+#: builtins/echo.def:65
+msgid "neE"
+msgstr ""
+
+#: builtins/echo.def:67
+msgid "n"
+msgstr ""
+
+#: builtins/enable.def:2
+msgid "enable"
+msgstr ""
+
+#: builtins/enable.def:104
+msgid "adnpsf:"
+msgstr ""
+
+#: builtins/enable.def:126 builtins/enable.def:134
+msgid "dynamic loading not available"
+msgstr ""
+
+#: builtins/enable.def:227
+#, c-format
+msgid "enable %s\n"
+msgstr ""
+
+#: builtins/enable.def:230
+#, c-format
+msgid "enable -n %s\n"
+msgstr ""
+
+#: builtins/enable.def:301
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr ""
+
+#: builtins/enable.def:319
+msgid "_struct"
+msgstr ""
+
+#: builtins/enable.def:324
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr ""
+
+#: builtins/enable.def:448
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr ""
+
+#: builtins/enable.def:463
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr ""
+
+#: builtins/exec.def:100
+msgid "cla:"
+msgstr ""
+
+#: builtins/exec.def:204
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr ""
+
+#: builtins/exit.def:61
+msgid "logout\n"
+msgstr ""
+
+#: builtins/exit.def:61
+msgid "exit\n"
+msgstr ""
+
+#: builtins/exit.def:81
+msgid "not login shell: use `exit'"
+msgstr ""
+
+#: builtins/exit.def:109
+msgid "There are stopped jobs.\n"
+msgstr ""
+
+#: builtins/exit.def:145
+msgid "~/.bash_logout"
+msgstr ""
+
+#: builtins/fc.def:2 builtins/fc.def:269 builtins/fc.def:370
+msgid "fc"
+msgstr ""
+
+#: builtins/fc.def:157
+msgid "${FCEDIT:-${EDITOR:-vi}}"
+msgstr ""
+
+#: builtins/fc.def:181
+msgid ":e:lnrs"
+msgstr ""
+
+#: builtins/fc.def:252
+msgid "no command found"
+msgstr ""
+
+#: builtins/fc.def:317
+msgid "history specification"
+msgstr ""
+
+#: builtins/fc.def:335
+msgid "bash-fc"
+msgstr ""
+
+#: builtins/fc.def:338
+#, c-format
+msgid "cannot open temp file %s"
+msgstr ""
+
+#: builtins/fc.def:350
+#, c-format
+msgid "\t%c"
+msgstr ""
+
+#: builtins/fc.def:363 builtins/fc.def:368
+#, c-format
+msgid "%s %s"
+msgstr ""
+
+#: builtins/fc.def:386 builtins/fc.def:394
+msgid "fc builtin"
+msgstr ""
+
+#: builtins/fg_bg.def:123 builtins/jobs.def:264
+msgid "current"
+msgstr ""
+
+#: builtins/fg_bg.def:131
+#, c-format
+msgid "job %%%d started without job control"
+msgstr ""
+
+#: builtins/getopts.def:2
+msgid "getopts"
+msgstr ""
+
+#: builtins/getopts.def:248 builtins/getopts.def:255 builtins/getopts.def:282
+#: lib/sh/strftime.c:235 lib/sh/strftime.c:242 lib/sh/strftime.c:250
+#: lib/sh/strftime.c:257
+msgid "?"
+msgstr ""
+
+#: builtins/getopts.def:261 builtins/getopts.def:264 builtins/getopts.def:278
+#: builtins/getopts.def:283 builtins/getopts.def:288
+msgid "OPTARG"
+msgstr ""
+
+#: builtins/hash.def:2
+msgid "hash"
+msgstr ""
+
+#: builtins/hash.def:82
+msgid "hashing disabled"
+msgstr ""
+
+#: builtins/hash.def:89
+msgid "dlp:rt"
+msgstr ""
+
+#: builtins/hash.def:118
+msgid "-t"
+msgstr ""
+
+#: builtins/hash.def:127
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr ""
+
+#: builtins/hash.def:210
+#, c-format
+msgid "%4d\t%s\n"
+msgstr ""
+
+#: builtins/hash.def:218 builtins/hash.def:257
+#, c-format
+msgid "builtin hash -p %s %s\n"
+msgstr ""
+
+#: builtins/hash.def:230
+msgid "hits\tcommand\n"
+msgstr ""
+
+#: builtins/hash.def:261
+#, c-format
+msgid "%s\t"
+msgstr ""
+
+#: builtins/help.def:80 builtins/help.def:105
+msgid "s"
+msgstr ""
+
+#: builtins/help.def:105
+#, c-format
+msgid "Shell commands matching keyword%s `"
+msgstr ""
+
+#: builtins/help.def:107
+msgid ""
+"'\n"
+"\n"
+msgstr ""
+
+#: builtins/help.def:121
+#, c-format
+msgid "%s: %s\n"
+msgstr ""
+
+#: builtins/help.def:133
+#, c-format
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+
+#: builtins/help.def:159
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr ""
+
+#: builtins/help.def:167
+#, c-format
+msgid "    %s\n"
+msgstr ""
+
+#: builtins/help.def:177
+msgid ""
+"These shell commands are defined internally.  Type `help' to see this list.\n"
+"Type `help name' to find out more about the function `name'.\n"
+"Use `info bash' to find out more about the shell in general.\n"
+"Use `man -k' or `info' to find out more about commands not in this list.\n"
+"\n"
+"A star (*) next to a name means that the command is disabled.\n"
+"\n"
+msgstr ""
+
+#: builtins/history.def:2 builtins/set.def:189
+msgid "history"
+msgstr ""
+
+#: builtins/history.def:106
+msgid "acd:npsrw"
+msgstr ""
+
+#: builtins/history.def:147
+msgid "cannot use more than one of -anrw"
+msgstr ""
+
+#: builtins/history.def:179
+msgid "history position"
+msgstr ""
+
+#: builtins/history.def:289
+#, c-format
+msgid "%5d%c %s%s\n"
+msgstr ""
+
+#: builtins/history.def:389
+#, c-format
+msgid "%s: history expansion failed"
+msgstr ""
+
+#: builtins/inlib.def:2
+msgid "inlib"
+msgstr ""
+
+#: builtins/inlib.def:67
+#, c-format
+msgid "%s: inlib failed"
+msgstr ""
+
+#: builtins/jobs.def:2
+msgid "jobs"
+msgstr ""
+
+#: builtins/jobs.def:2
+msgid "disown"
+msgstr ""
+
+#: builtins/jobs.def:85
+msgid "lpnxrs"
+msgstr ""
+
+#: builtins/jobs.def:101
+msgid "no other options allowed with `-x'"
+msgstr ""
+
+#: builtins/jobs.def:185 builtins/jobs.def:197
+msgid "jobs_builtin"
+msgstr ""
+
+#: builtins/jobs.def:224
+msgid "ahr"
+msgstr ""
+
+#: builtins/kill.def:2
+msgid "kill"
+msgstr ""
+
+#: builtins/kill.def:186
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr ""
+
+#: builtins/kill.def:247
+msgid "Unknown error"
+msgstr ""
+
+#: builtins/kill.def:248
+#, c-format
+msgid "(%ld) - %s"
+msgstr ""
+
+#: builtins/let.def:2
+msgid "let"
+msgstr ""
+
+#: builtins/printf.def:2
+msgid "printf"
+msgstr ""
+
+#: builtins/printf.def:66
+msgid "<PRIdMAX>lld"
+msgstr ""
+
+#: builtins/printf.def:68
+msgid "<PRIdMAX>ld"
+msgstr ""
+
+#: builtins/printf.def:103
+msgid "#'-+ 0"
+msgstr ""
+
+#: builtins/printf.def:104
+msgid "hjlLtz"
+msgstr ""
+
+#: builtins/printf.def:119
+msgid "L"
+msgstr ""
+
+#: builtins/printf.def:248
+#, c-format
+msgid "`%s': missing format character"
+msgstr ""
+
+#: builtins/printf.def:346 builtins/printf.def:373
+msgid "<PRIdMAX>"
+msgstr ""
+
+#: builtins/printf.def:355 builtins/printf.def:378
+msgid "l"
+msgstr ""
+
+#: builtins/printf.def:407
+#, c-format
+msgid "`%c': invalid format character"
+msgstr ""
+
+#: builtins/printf.def:427
+#, c-format
+msgid "warning: %s: %s"
+msgstr ""
+
+#: builtins/printf.def:504
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:600
+msgid "missing hex digit for \\x"
+msgstr ""
+
+#: builtins/pushd.def:2 builtins/pushd.def:171 builtins/pushd.def:230
+#: builtins/pushd.def:263 builtins/pushd.def:715
+msgid "pushd"
+msgstr ""
+
+#: builtins/pushd.def:2 builtins/pushd.def:724
+msgid "popd"
+msgstr ""
+
+#: builtins/pushd.def:2 builtins/pushd.def:432 builtins/pushd.def:733
+msgid "dirs"
+msgstr ""
+
+#: builtins/pushd.def:167
+msgid "no other directory"
+msgstr ""
+
+#: builtins/pushd.def:434
+msgid "<no current directory>"
+msgstr ""
+
+#: builtins/pushd.def:436 builtins/pushd.def:455
+#, c-format
+msgid "%2d  %s"
+msgstr ""
+
+#: builtins/pushd.def:463
+#, c-format
+msgid ""
+"\n"
+"%2d  %s"
+msgstr ""
+
+#: builtins/pushd.def:478
+msgid "directory stack empty"
+msgstr ""
+
+#: builtins/pushd.def:480
+msgid "directory stack index"
+msgstr ""
+
+#: builtins/pushd.def:625
+msgid "dirstack"
+msgstr ""
+
+#: builtins/pushd.def:651
+msgid "Display the list of currently remembered directories.  Directories"
+msgstr ""
+
+#: builtins/pushd.def:652
+msgid "find their way onto the list with the `pushd' command; you can get"
+msgstr ""
+
+#: builtins/pushd.def:653
+msgid "back up through the list with the `popd' command."
+msgstr ""
+
+#: builtins/pushd.def:655
+msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+msgstr ""
+
+#: builtins/pushd.def:656
+msgid "of directories which are relative to your home directory.  This means"
+msgstr ""
+
+#: builtins/pushd.def:657
+msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
+msgstr ""
+
+#: builtins/pushd.def:658
+msgid "causes `dirs' to print the directory stack with one entry per line,"
+msgstr ""
+
+#: builtins/pushd.def:659
+msgid "prepending the directory name with its position in the stack.  The -p"
+msgstr ""
+
+#: builtins/pushd.def:660
+msgid "flag does the same thing, but the stack position is not prepended."
+msgstr ""
+
+#: builtins/pushd.def:661
+msgid "The -c flag clears the directory stack by deleting all of the elements."
+msgstr ""
+
+#: builtins/pushd.def:663
+msgid "+N   displays the Nth entry counting from the left of the list shown by"
+msgstr ""
+
+#: builtins/pushd.def:664 builtins/pushd.def:667
+msgid "     dirs when invoked without options, starting with zero."
+msgstr ""
+
+#: builtins/pushd.def:666
+msgid ""
+"-N   displays the Nth entry counting from the right of the list shown by"
+msgstr ""
+
+#: builtins/pushd.def:672
+msgid "Adds a directory to the top of the directory stack, or rotates"
+msgstr ""
+
+#: builtins/pushd.def:673
+msgid "the stack, making the new top of the stack the current working"
+msgstr ""
+
+#: builtins/pushd.def:674
+msgid "directory.  With no arguments, exchanges the top two directories."
+msgstr ""
+
+#: builtins/pushd.def:676
+msgid "+N   Rotates the stack so that the Nth directory (counting"
+msgstr ""
+
+#: builtins/pushd.def:677
+msgid "     from the left of the list shown by `dirs', starting with"
+msgstr ""
+
+#: builtins/pushd.def:678 builtins/pushd.def:682
+msgid "     zero) is at the top."
+msgstr ""
+
+#: builtins/pushd.def:680
+msgid "-N   Rotates the stack so that the Nth directory (counting"
+msgstr ""
+
+#: builtins/pushd.def:681
+msgid "     from the right of the list shown by `dirs', starting with"
+msgstr ""
+
+#: builtins/pushd.def:684
+msgid "-n   suppress the normal change of directory when adding directories"
+msgstr ""
+
+#: builtins/pushd.def:685
+msgid "     to the stack, so only the stack is manipulated."
+msgstr ""
+
+#: builtins/pushd.def:687
+msgid "dir  adds DIR to the directory stack at the top, making it the"
+msgstr ""
+
+#: builtins/pushd.def:688
+msgid "     new current working directory."
+msgstr ""
+
+#: builtins/pushd.def:690 builtins/pushd.def:710
+msgid "You can see the directory stack with the `dirs' command."
+msgstr ""
+
+#: builtins/pushd.def:695
+msgid "Removes entries from the directory stack.  With no arguments,"
+msgstr ""
+
+#: builtins/pushd.def:696
+msgid "removes the top directory from the stack, and cd's to the new"
+msgstr ""
+
+#: builtins/pushd.def:697
+msgid "top directory."
+msgstr ""
+
+#: builtins/pushd.def:699
+msgid "+N   removes the Nth entry counting from the left of the list"
+msgstr ""
+
+#: builtins/pushd.def:700
+msgid "     shown by `dirs', starting with zero.  For example: `popd +0'"
+msgstr ""
+
+#: builtins/pushd.def:701
+msgid "     removes the first directory, `popd +1' the second."
+msgstr ""
+
+#: builtins/pushd.def:703
+msgid "-N   removes the Nth entry counting from the right of the list"
+msgstr ""
+
+#: builtins/pushd.def:704
+msgid "     shown by `dirs', starting with zero.  For example: `popd -0'"
+msgstr ""
+
+#: builtins/pushd.def:705
+msgid "     removes the last directory, `popd -1' the next to last."
+msgstr ""
+
+#: builtins/pushd.def:707
+msgid "-n   suppress the normal change of directory when removing directories"
+msgstr ""
+
+#: builtins/pushd.def:708
+msgid "     from the stack, so only the stack is manipulated."
+msgstr ""
+
+#: builtins/pushd.def:719
+msgid "pushd [+N | -N] [-n] [dir]"
+msgstr ""
+
+#: builtins/pushd.def:728
+msgid "popd [+N | -N] [-n]"
+msgstr ""
+
+#: builtins/pushd.def:737
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr ""
+
+#: builtins/read.def:2
+msgid "read"
+msgstr ""
+
+#: builtins/read.def:178
+msgid "ersa:d:n:p:t:u:"
+msgstr ""
+
+#: builtins/read.def:205
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr ""
+
+#: builtins/read.def:228
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr ""
+
+#: builtins/read.def:235
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr ""
+
+#: builtins/read.def:272 builtins/read.def:317 builtins/read.def:491
+msgid "read_builtin"
+msgstr ""
+
+#: builtins/read.def:461
+#, c-format
+msgid "read error: %d: %s"
+msgstr ""
+
+#: builtins/reserved.def:123
+msgid "let EXPRESSION"
+msgstr ""
+
+#: builtins/return.def:61
+msgid "can only `return' from a function or sourced script"
+msgstr ""
+
+#: builtins/set.def:161 builtins/shopt.def:170
+msgid "on"
+msgstr ""
+
+#: builtins/set.def:162 builtins/shopt.def:171
+msgid "off"
+msgstr ""
+
+#: builtins/set.def:174
+msgid "allexport"
+msgstr ""
+
+#: builtins/set.def:176
+msgid "braceexpand"
+msgstr ""
+
+#: builtins/set.def:181
+msgid "errexit"
+msgstr ""
+
+#: builtins/set.def:182
+msgid "errtrace"
+msgstr ""
+
+#: builtins/set.def:183
+msgid "functrace"
+msgstr ""
+
+#: builtins/set.def:184
+msgid "hashall"
+msgstr ""
+
+#: builtins/set.def:186
+msgid "histexpand"
+msgstr ""
+
+#: builtins/set.def:192
+msgid "interactive-comments"
+msgstr ""
+
+#: builtins/set.def:194
+msgid "monitor"
+msgstr ""
+
+#: builtins/set.def:195
+msgid "noclobber"
+msgstr ""
+
+#: builtins/set.def:196
+msgid "noexec"
+msgstr ""
+
+#: builtins/set.def:197
+msgid "noglob"
+msgstr ""
+
+#: builtins/set.def:199
+msgid "nolog"
+msgstr ""
+
+#: builtins/set.def:202
+msgid "notify"
+msgstr ""
+
+#: builtins/set.def:204
+msgid "nounset"
+msgstr ""
+
+#: builtins/set.def:205
+msgid "onecmd"
+msgstr ""
+
+#: builtins/set.def:206
+msgid "physical"
+msgstr ""
+
+#: builtins/set.def:207
+msgid "pipefail"
+msgstr ""
+
+#: builtins/set.def:209
+msgid "privileged"
+msgstr ""
+
+#: builtins/set.def:212
+msgid "vi"
+msgstr ""
+
+#: builtins/set.def:214
+msgid "xtrace"
+msgstr ""
+
+#: builtins/set.def:252 builtins/shopt.def:56
+#, c-format
+msgid "%-15s\t%s\n"
+msgstr ""
+
+#: builtins/set.def:262 builtins/shopt.def:414
+#, c-format
+msgid "set %co %s\n"
+msgstr ""
+
+#: builtins/set.def:313
+msgid "10"
+msgstr ""
+
+#: builtins/set.def:345
+msgid "editing-mode"
+msgstr ""
+
+#: builtins/set.def:493 builtins/set.def:505 builtins/set.def:541
+msgid "SHELLOPTS"
+msgstr ""
+
+#: builtins/set.def:722
+msgid "fv"
+msgstr ""
+
+#: builtins/set.def:742
+msgid "cannot simultaneously unset a function and a variable"
+msgstr ""
+
+#: builtins/set.def:779
+#, c-format
+msgid "%s: cannot unset"
+msgstr ""
+
+#: builtins/set.def:786
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr ""
+
+#: builtins/set.def:797
+#, c-format
+msgid "%s: not an array variable"
+msgstr ""
+
+#: builtins/setattr.def:98
+msgid "afnp"
+msgstr ""
+
+#: builtins/setattr.def:100
+msgid "fnp"
+msgstr ""
+
+#: builtins/setattr.def:164
+#, c-format
+msgid "%s: not a function"
+msgstr ""
+
+#: builtins/setattr.def:201
+msgid "-ra"
+msgstr ""
+
+#: builtins/setattr.def:332
+#, c-format
+msgid "declare -%s "
+msgstr ""
+
+#: builtins/setattr.def:334
+#, c-format
+msgid "%s -%s "
+msgstr ""
+
+#: builtins/shift.def:65 builtins/shift.def:71
+msgid "shift count"
+msgstr ""
+
+#: builtins/shopt.def:115
+msgid "cdable_vars"
+msgstr ""
+
+#: builtins/shopt.def:116
+msgid "cdspell"
+msgstr ""
+
+#: builtins/shopt.def:117
+msgid "checkhash"
+msgstr ""
+
+#: builtins/shopt.def:118
+msgid "checkwinsize"
+msgstr ""
+
+#: builtins/shopt.def:120
+msgid "cmdhist"
+msgstr ""
+
+#: builtins/shopt.def:122
+msgid "dotglob"
+msgstr ""
+
+#: builtins/shopt.def:123
+msgid "execfail"
+msgstr ""
+
+#: builtins/shopt.def:124
+msgid "expand_aliases"
+msgstr ""
+
+#: builtins/shopt.def:126
+msgid "extdebug"
+msgstr ""
+
+#: builtins/shopt.def:129
+msgid "extglob"
+msgstr ""
+
+#: builtins/shopt.def:131
+msgid "extquote"
+msgstr ""
+
+#: builtins/shopt.def:132
+msgid "failglob"
+msgstr ""
+
+#: builtins/shopt.def:134
+msgid "force_fignore"
+msgstr ""
+
+#: builtins/shopt.def:135
+msgid "gnu_errfmt"
+msgstr ""
+
+#: builtins/shopt.def:136
+msgid "histreedit"
+msgstr ""
+
+#: builtins/shopt.def:139
+msgid "histappend"
+msgstr ""
+
+#: builtins/shopt.def:142
+msgid "histverify"
+msgstr ""
+
+#: builtins/shopt.def:143
+msgid "hostcomplete"
+msgstr ""
+
+#: builtins/shopt.def:145
+msgid "huponexit"
+msgstr ""
+
+#: builtins/shopt.def:146
+msgid "interactive_comments"
+msgstr ""
+
+#: builtins/shopt.def:148
+msgid "lithist"
+msgstr ""
+
+#: builtins/shopt.def:150
+msgid "login_shell"
+msgstr ""
+
+#: builtins/shopt.def:151
+msgid "mailwarn"
+msgstr ""
+
+#: builtins/shopt.def:153
+msgid "no_empty_cmd_completion"
+msgstr ""
+
+#: builtins/shopt.def:155
+msgid "nocaseglob"
+msgstr ""
+
+#: builtins/shopt.def:156
+msgid "nullglob"
+msgstr ""
+
+#: builtins/shopt.def:158
+msgid "progcomp"
+msgstr ""
+
+#: builtins/shopt.def:160
+msgid "promptvars"
+msgstr ""
+
+#: builtins/shopt.def:162
+msgid "restricted_shell"
+msgstr ""
+
+#: builtins/shopt.def:164
+msgid "shift_verbose"
+msgstr ""
+
+#: builtins/shopt.def:165
+msgid "sourcepath"
+msgstr ""
+
+#: builtins/shopt.def:166
+msgid "xpg_echo"
+msgstr ""
+
+#: builtins/shopt.def:196
+msgid "psuoq"
+msgstr ""
+
+#: builtins/shopt.def:224
+msgid "cannot set and unset shell options simultaneously"
+msgstr ""
+
+#: builtins/shopt.def:289
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr ""
+
+#: builtins/shopt.def:325
+#, c-format
+msgid "shopt %s %s\n"
+msgstr ""
+
+#: builtins/source.def:116
+msgid "filename argument required"
+msgstr ""
+
+#: builtins/source.def:136
+#, c-format
+msgid "%s: file not found"
+msgstr ""
+
+#: builtins/suspend.def:2
+msgid "suspend"
+msgstr ""
+
+#: builtins/suspend.def:77
+msgid "f"
+msgstr ""
+
+#: builtins/suspend.def:92
+msgid "cannot suspend"
+msgstr ""
+
+#: builtins/suspend.def:102
+msgid "cannot suspend a login shell"
+msgstr ""
+
+#: builtins/test.def:2 builtins/test.def:98
+msgid "test"
+msgstr ""
+
+#: builtins/times.def:2
+msgid "times"
+msgstr ""
+
+#: builtins/times.def:109
+msgid ""
+"0.00 0.00\n"
+"0.00 0.00\n"
+msgstr ""
+
+#: builtins/trap.def:39
+msgid "kill -signal $$"
+msgstr ""
+
+#: builtins/trap.def:94
+msgid "lp"
+msgstr ""
+
+#: builtins/trap.def:215
+#, c-format
+msgid "trap -- %s %d\n"
+msgstr ""
+
+#: builtins/trap.def:219 builtins/trap.def:221 builtins/trap.def:224
+#, c-format
+msgid "trap -- %s %s\n"
+msgstr ""
+
+#: builtins/type.def:2 builtins/type.def:127
+msgid "type"
+msgstr ""
+
+#: builtins/type.def:127
+msgid "-type"
+msgstr ""
+
+#: builtins/type.def:132
+msgid "path"
+msgstr ""
+
+#: builtins/type.def:132
+msgid "-path"
+msgstr ""
+
+#: builtins/type.def:137
+msgid "all"
+msgstr ""
+
+#: builtins/type.def:137
+msgid "-all"
+msgstr ""
+
+#: builtins/type.def:145
+msgid "afptP"
+msgstr ""
+
+#: builtins/type.def:230
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr ""
+
+#: builtins/type.def:234
+#, c-format
+msgid "alias %s=%s\n"
+msgstr ""
+
+#: builtins/type.def:251
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr ""
+
+#: builtins/type.def:271
+#, c-format
+msgid "%s is a function\n"
+msgstr ""
+
+#: builtins/type.def:296
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr ""
+
+#: builtins/type.def:317 builtins/type.def:382
+#, c-format
+msgid "%s is %s\n"
+msgstr ""
+
+#: builtins/type.def:337
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr ""
+
+#: builtins/ulimit.def:2
+msgid "ulimit"
+msgstr ""
+
+#: builtins/ulimit.def:111
+#, c-format
+msgid "%ld%s"
+msgstr ""
+
+#: builtins/ulimit.def:195
+msgid "core file size"
+msgstr ""
+
+#: builtins/ulimit.def:195 builtins/ulimit.def:200
+msgid "blocks"
+msgstr ""
+
+#: builtins/ulimit.def:198
+msgid "data seg size"
+msgstr ""
+
+#: builtins/ulimit.def:198 builtins/ulimit.def:202 builtins/ulimit.def:205
+#: builtins/ulimit.def:210 builtins/ulimit.def:217 builtins/ulimit.def:220
+msgid "kbytes"
+msgstr ""
+
+#: builtins/ulimit.def:200
+msgid "file size"
+msgstr ""
+
+#: builtins/ulimit.def:202
+msgid "max locked memory"
+msgstr ""
+
+#: builtins/ulimit.def:205
+msgid "max memory size"
+msgstr ""
+
+#: builtins/ulimit.def:207
+msgid "open files"
+msgstr ""
+
+#: builtins/ulimit.def:208
+msgid "pipe size"
+msgstr ""
+
+#: builtins/ulimit.def:208
+msgid "512 bytes"
+msgstr ""
+
+#: builtins/ulimit.def:210
+msgid "stack size"
+msgstr ""
+
+#: builtins/ulimit.def:213
+msgid "cpu time"
+msgstr ""
+
+#: builtins/ulimit.def:213
+msgid "seconds"
+msgstr ""
+
+#: builtins/ulimit.def:215
+msgid "max user processes"
+msgstr ""
+
+#: builtins/ulimit.def:217
+msgid "virtual memory"
+msgstr ""
+
+#: builtins/ulimit.def:220
+msgid "swap size"
+msgstr ""
+
+#: builtins/ulimit.def:328 builtins/ulimit.def:401 builtins/ulimit.def:674
+msgid "unlimited"
+msgstr ""
+
+#: builtins/ulimit.def:330
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr ""
+
+#: builtins/ulimit.def:356
+#, c-format
+msgid "`%c': bad command"
+msgstr ""
+
+#: builtins/ulimit.def:385 builtins/ulimit.def:649
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr ""
+
+#: builtins/ulimit.def:397 builtins/ulimit.def:676
+msgid "hard"
+msgstr ""
+
+#: builtins/ulimit.def:399 builtins/ulimit.def:678
+msgid "soft"
+msgstr ""
+
+#: builtins/ulimit.def:411
+msgid "limit"
+msgstr ""
+
+#: builtins/ulimit.def:423 builtins/ulimit.def:716
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr ""
+
+#: builtins/ulimit.def:667
+#, c-format
+msgid "(%s, -%c) "
+msgstr ""
+
+#: builtins/ulimit.def:669
+#, c-format
+msgid "(-%c) "
+msgstr ""
+
+#: builtins/ulimit.def:671
+#, c-format
+msgid "%-18s %16s"
+msgstr ""
+
+#: builtins/umask.def:2
+msgid "umask"
+msgstr ""
+
+#: builtins/umask.def:80
+msgid "Sp"
+msgstr ""
+
+#: builtins/umask.def:110
+msgid "octal number"
+msgstr ""
+
+#: builtins/umask.def:131
+#, c-format
+msgid "umask%s "
+msgstr ""
+
+#: builtins/umask.def:131
+msgid " -S"
+msgstr ""
+
+#: builtins/umask.def:135
+#, c-format
+msgid "%04lo\n"
+msgstr ""
+
+#: builtins/umask.def:178
+#, c-format
+msgid "u=%s,g=%s,o=%s\n"
+msgstr ""
+
+#: builtins/umask.def:194
+msgid "agou"
+msgstr ""
+
+#: builtins/umask.def:224
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr ""
+
+#: builtins/umask.def:229
+msgid "rwx"
+msgstr ""
+
+#: builtins/umask.def:277
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr ""
+
+#: lib/sh/clock.c:79 lib/sh/timeval.c:143
+#, c-format
+msgid "%ldm%d.%03ds"
+msgstr ""
+
+#: lib/sh/fmtulong.c:55 lib/sh/snprintf.c:167
+msgid "0123456789abcdef"
+msgstr ""
+
+#: lib/sh/fmtulong.c:56 lib/sh/snprintf.c:168
+msgid "0123456789ABCDEF"
+msgstr ""
+
+#: lib/sh/fmtulong.c:99
+msgid "invalid base"
+msgstr ""
+
+#: lib/sh/getcwd.c:75
+msgid "../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../.."
+msgstr ""
+
+#: lib/sh/getcwd.c:304
+msgid "cwd: getcwd"
+msgstr ""
+
+#: lib/sh/inet_aton.c:59
+msgid "@(#)inet_addr.c\t8.1 (Berkeley) 6/17/93"
+msgstr ""
+
+#: lib/sh/inet_aton.c:60
+msgid "$Id: inet_addr.c,v 1.5 1996/08/14 03:48:37 drepper Exp $"
+msgstr ""
+
+#: lib/sh/mailstat.c:95
+#, c-format
+msgid "%s/cur"
+msgstr ""
+
+#: lib/sh/mailstat.c:101
+#, c-format
+msgid "%s/tmp"
+msgstr ""
+
+#: lib/sh/mailstat.c:107
+#, c-format
+msgid "%s/new"
+msgstr ""
+
+#: lib/sh/mailstat.c:126
+msgid "cur"
+msgstr ""
+
+#: lib/sh/mailstat.c:126
+msgid "new"
+msgstr ""
+
+#: lib/sh/mailstat.c:127
+#, c-format
+msgid "%s/"
+msgstr ""
+
+#: lib/sh/makepath.c:77
+msgid "sh_makepath"
+msgstr ""
+
+#: lib/sh/mktime.c:330
+#, c-format
+msgid "%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d"
+msgstr ""
+
+#: lib/sh/mktime.c:345
+msgid "mktime ("
+msgstr ""
+
+#: lib/sh/mktime.c:347
+msgid ""
+")\n"
+"yields ("
+msgstr ""
+
+#: lib/sh/mktime.c:349
+#, c-format
+msgid ") == %ld, should be %ld\n"
+msgstr ""
+
+#: lib/sh/mktime.c:367
+#, c-format
+msgid "%d-%d-%d%c"
+msgstr ""
+
+#: lib/sh/mktime.c:370
+#, c-format
+msgid "%d:%d:%d%c"
+msgstr ""
+
+#: lib/sh/mktime.c:380
+#, c-format
+msgid "mktime returns %ld == "
+msgstr ""
+
+#: lib/sh/mktime.c:410
+#, c-format
+msgid ""
+"Usage:\t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n"
+"\t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n"
+"\t%s FROM BY TO - # Do not test those values (for benchmark).\n"
+msgstr ""
+
+#: lib/sh/netopen.c:128
+msgid "tcp"
+msgstr ""
+
+#: lib/sh/netopen.c:128
+msgid "udp"
+msgstr ""
+
+#: lib/sh/netopen.c:156
+#, c-format
+msgid "%s: host unknown"
+msgstr ""
+
+#: lib/sh/netopen.c:163
+#, c-format
+msgid "%s: invalid service"
+msgstr ""
+
+#: lib/sh/netopen.c:176 lib/sh/netopen.c:234
+msgid "socket"
+msgstr ""
+
+#: lib/sh/netopen.c:183 lib/sh/netopen.c:246
+msgid "connect"
+msgstr ""
+
+#: lib/sh/netopen.c:294
+#, c-format
+msgid "%s: bad network path specification"
+msgstr ""
+
+#: lib/sh/netopen.c:334
+msgid "network operations not supported"
+msgstr ""
+
+#: lib/sh/pathphys.c:269
+msgid "sh_realpath"
+msgstr ""
+
+#: lib/sh/shmatch.c:95 lib/sh/shmatch.c:96
+msgid "BASH_REMATCH"
+msgstr ""
+
+#: lib/sh/snprintf.c:402
+msgid "\ 3"
+msgstr ""
+
+#: lib/sh/snprintf.c:892
+msgid "INF"
+msgstr ""
+
+#: lib/sh/snprintf.c:892
+msgid "NAN"
+msgstr ""
+
+#: lib/sh/snprintf.c:893
+msgid "inf"
+msgstr ""
+
+#: lib/sh/snprintf.c:893
+msgid "nan"
+msgstr ""
+
+#: lib/sh/snprintf.c:1646
+msgid "out of virtual memory\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1695 lib/sh/snprintf.c:1697 lib/sh/snprintf.c:1699
+msgid "abcde\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1696
+#, c-format
+msgid "snprintf returns %d with NULL first argument and size of 0\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1698
+#, c-format
+msgid "snprintf returns %d with non-NULL first argument and size of 0\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1700
+#, c-format
+msgid "snprintf returns %d with NULL first argument and non-zero size\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1710
+#, c-format
+msgid "/%%ld %%ld/, 336, 336\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1711 lib/sh/snprintf.c:1712 lib/sh/snprintf.c:1713
+#, c-format
+msgid "/%ld %ld/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1717
+#, c-format
+msgid "/%%d/, 336\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1718 lib/sh/snprintf.c:1719 lib/sh/snprintf.c:1720
+#, c-format
+msgid "/%d/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1724
+#, c-format
+msgid "/%%2d/, 336\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1725 lib/sh/snprintf.c:1726 lib/sh/snprintf.c:1727
+#, c-format
+msgid "/%2d/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1731
+#, c-format
+msgid "/%%10d/, 336\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1732 lib/sh/snprintf.c:1733 lib/sh/snprintf.c:1734
+#, c-format
+msgid "/%10d/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1738
+#, c-format
+msgid "/%%-10d/, 336\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1739 lib/sh/snprintf.c:1740 lib/sh/snprintf.c:1741
+#, c-format
+msgid "/%-10d/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1748
+#, c-format
+msgid "/%%f/, 1234.56\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1749 lib/sh/snprintf.c:1750 lib/sh/snprintf.c:1751
+#, c-format
+msgid "/%f/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1755
+#, c-format
+msgid "/%%e/, 1234.56\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1756 lib/sh/snprintf.c:1757 lib/sh/snprintf.c:1758
+#, c-format
+msgid "/%e/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1762
+#, c-format
+msgid "/%%4.2f/, 1234.56\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1763 lib/sh/snprintf.c:1764 lib/sh/snprintf.c:1765
+#, c-format
+msgid "/%4.2f/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1769
+#, c-format
+msgid "/%%3.1f/, 1234.56\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1770 lib/sh/snprintf.c:1771 lib/sh/snprintf.c:1772
+#, c-format
+msgid "/%3.1f/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1776
+#, c-format
+msgid "/%%10.3f/, 1234.56\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1777 lib/sh/snprintf.c:1778 lib/sh/snprintf.c:1779
+#, c-format
+msgid "/%10.3f/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1783
+#, c-format
+msgid "/%%10.3e/, 1234.56\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1784 lib/sh/snprintf.c:1785 lib/sh/snprintf.c:1786
+#, c-format
+msgid "/%10.3e/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1790
+#, c-format
+msgid "/%%+4.2f/, 1234.56\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1791 lib/sh/snprintf.c:1792 lib/sh/snprintf.c:1793
+#, c-format
+msgid "/%+4.2f/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1797
+#, c-format
+msgid "/%%010.2f/, 1234.56\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1798 lib/sh/snprintf.c:1799 lib/sh/snprintf.c:1800
+#, c-format
+msgid "/%010.2f/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1804
+msgid "Outstanding acting !"
+msgstr ""
+
+#: lib/sh/snprintf.c:1807
+#, c-format
+msgid "/%%2s/, \"%s\"\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1808 lib/sh/snprintf.c:1809 lib/sh/snprintf.c:1810
+#, c-format
+msgid "/%2s/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1814
+#, c-format
+msgid "/%%22s/ %s\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1815 lib/sh/snprintf.c:1816 lib/sh/snprintf.c:1817
+#, c-format
+msgid "/%22s/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1821
+#, c-format
+msgid "/%%22.5s/ %s\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1822 lib/sh/snprintf.c:1823 lib/sh/snprintf.c:1824
+#, c-format
+msgid "/%22.5s/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1828
+#, c-format
+msgid "/%%-22.5s/ %s\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1829 lib/sh/snprintf.c:1830 lib/sh/snprintf.c:1831
+#, c-format
+msgid "/%-22.5s/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1837
+#, c-format
+msgid "%%x %%X %%#x, 31, 31, 31\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1838 lib/sh/snprintf.c:1839 lib/sh/snprintf.c:1840
+#, c-format
+msgid "%x %X %#x\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1844
+#, c-format
+msgid "**%%d**%% d**%% d**, 42, 42, -42\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1845 lib/sh/snprintf.c:1846 lib/sh/snprintf.c:1847
+#, c-format
+msgid "**%d**% d**% d**\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1853
+#, c-format
+msgid "/%%g/, 31.4\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1854 lib/sh/snprintf.c:1855 lib/sh/snprintf.c:1856
+#: lib/sh/snprintf.c:1975 lib/sh/snprintf.c:1976 lib/sh/snprintf.c:1977
+#: lib/sh/snprintf.c:1982 lib/sh/snprintf.c:1983 lib/sh/snprintf.c:1984
+#, c-format
+msgid "/%g/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1860
+#, c-format
+msgid "/%%.6g/, 31.4\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1861 lib/sh/snprintf.c:1862 lib/sh/snprintf.c:1863
+#, c-format
+msgid "/%.6g/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1867
+#, c-format
+msgid "/%%.1G/, 31.4\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1868 lib/sh/snprintf.c:1869 lib/sh/snprintf.c:1870
+#: lib/sh/snprintf.c:1875 lib/sh/snprintf.c:1876 lib/sh/snprintf.c:1877
+#, c-format
+msgid "/%.1G/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1874
+#, c-format
+msgid "/%%.1G/, 3100000000.4\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1881
+#, c-format
+msgid "abc%%n\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1882 lib/sh/snprintf.c:1883 lib/sh/snprintf.c:1885
+#, c-format
+msgid "abc%n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1884 lib/sh/snprintf.c:1886
+#, c-format
+msgid ""
+"%d\n"
+"\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1888
+#, c-format
+msgid "%%*.*s --> 10.10\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1889 lib/sh/snprintf.c:1890 lib/sh/snprintf.c:1891
+#, c-format
+msgid "%*.*s\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1895
+#, c-format
+msgid "%%%%%%%%\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1896 lib/sh/snprintf.c:1897 lib/sh/snprintf.c:1898
+#, c-format
+msgid "%%%%\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1902
+msgid "Hello this is a too big string for the buffer"
+msgstr ""
+
+#: lib/sh/snprintf.c:1904
+#, c-format
+msgid "<%%>, %s\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1907 lib/sh/snprintf.c:1908 lib/sh/snprintf.c:1915
+#: lib/sh/snprintf.c:1922 lib/sh/snprintf.c:1930 lib/sh/snprintf.c:1939
+#: lib/sh/snprintf.c:1948 lib/sh/snprintf.c:1955
+#, c-format
+msgid "<%s>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1909 lib/sh/snprintf.c:1916 lib/sh/snprintf.c:1923
+#: lib/sh/snprintf.c:1931 lib/sh/snprintf.c:1940 lib/sh/snprintf.c:1949
+#: lib/sh/snprintf.c:1956
+#, c-format
+msgid ""
+"<%s>\n"
+"\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1911
+#, c-format
+msgid "<%%p> vsnprintf\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1912 lib/sh/snprintf.c:1913
+#, c-format
+msgid "%p"
+msgstr ""
+
+#: lib/sh/snprintf.c:1914
+#, c-format
+msgid "<%p>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1918
+#, c-format
+msgid "<%%lu> LONG_MAX+1\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1919 lib/sh/snprintf.c:1920
+#, c-format
+msgid "%lu"
+msgstr ""
+
+#: lib/sh/snprintf.c:1921
+#, c-format
+msgid "<%lu>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1926
+#, c-format
+msgid "<%%llu> LLONG_MAX+1\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1927 lib/sh/snprintf.c:1928
+#, c-format
+msgid "%llu"
+msgstr ""
+
+#: lib/sh/snprintf.c:1929
+#, c-format
+msgid "<%llu>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1935
+#, c-format
+msgid "<%%6.2LE> 42.42\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1936 lib/sh/snprintf.c:1937
+#, c-format
+msgid "%6.2LE"
+msgstr ""
+
+#: lib/sh/snprintf.c:1938
+#, c-format
+msgid "<%6.2LE>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1944
+#, c-format
+msgid "<%%6.2A> 42.42\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1945 lib/sh/snprintf.c:1946
+#, c-format
+msgid "%6.2A"
+msgstr ""
+
+#: lib/sh/snprintf.c:1947
+#, c-format
+msgid "<%6.2A>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1951
+#, c-format
+msgid "<%%6.2LA> 42.42\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1952 lib/sh/snprintf.c:1953
+#, c-format
+msgid "%6.2LA"
+msgstr ""
+
+#: lib/sh/snprintf.c:1954
+#, c-format
+msgid "<%6.2LA>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1959
+#, c-format
+msgid "<%%.10240f> DBL_MAX\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1960 lib/sh/snprintf.c:1961
+#, c-format
+msgid "%.10240f"
+msgstr ""
+
+#: lib/sh/snprintf.c:1962
+#, c-format
+msgid "<%.10240f>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1963 lib/sh/snprintf.c:1970
+#, c-format
+msgid "<%d> <%s>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1964 lib/sh/snprintf.c:1971
+#, c-format
+msgid ""
+"<%d> <%s>\n"
+"\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1966
+#, c-format
+msgid "<%%.10240Lf> LDBL_MAX\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1967 lib/sh/snprintf.c:1968
+#, c-format
+msgid "%.10240Lf"
+msgstr ""
+
+#: lib/sh/snprintf.c:1969
+#, c-format
+msgid "<%.10240Lf>\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1974
+#, c-format
+msgid "/%%g/, 421.2345\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1981
+#, c-format
+msgid "/%%g/, 4214.2345\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1988
+#, c-format
+msgid "/%%.5g/, 4214.2345\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1989 lib/sh/snprintf.c:1990 lib/sh/snprintf.c:1991
+#, c-format
+msgid "/%.5g/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1995
+#, c-format
+msgid "/%%.4g/, 4214.2345\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:1996 lib/sh/snprintf.c:1997 lib/sh/snprintf.c:1998
+#, c-format
+msgid "/%.4g/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2002
+#, c-format
+msgid "/%%'ld %%'ld/, 12345, 1234567\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2003 lib/sh/snprintf.c:2004 lib/sh/snprintf.c:2005
+#: lib/sh/snprintf.c:2010 lib/sh/snprintf.c:2011 lib/sh/snprintf.c:2012
+#: lib/sh/snprintf.c:2017 lib/sh/snprintf.c:2018 lib/sh/snprintf.c:2019
+#, c-format
+msgid "/%'ld %'ld/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2009
+#, c-format
+msgid "/%%'ld %%'ld/, 336, 3336\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2016
+#, c-format
+msgid "/%%'ld %%'ld/, -42786, -142786\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2023
+#, c-format
+msgid "/%%'f %%'f/, 421.2345, 421234.56789\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2024 lib/sh/snprintf.c:2025 lib/sh/snprintf.c:2026
+#: lib/sh/snprintf.c:2031 lib/sh/snprintf.c:2032 lib/sh/snprintf.c:2033
+#, c-format
+msgid "/%'f %'f/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2030
+#, c-format
+msgid "/%%'f %%'f/, -421.2345, -421234.56789\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2037
+#, c-format
+msgid "/%%'g %%'g/, 421.2345, 421234.56789\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2038 lib/sh/snprintf.c:2039 lib/sh/snprintf.c:2040
+#: lib/sh/snprintf.c:2045 lib/sh/snprintf.c:2046 lib/sh/snprintf.c:2047
+#, c-format
+msgid "/%'g %'g/\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2044
+#, c-format
+msgid "/%%'g %%'g/, -421.2345, -421234.56789\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2052
+#, c-format
+msgid "/%%'g/, 4213455.8392\n"
+msgstr ""
+
+#: lib/sh/snprintf.c:2053 lib/sh/snprintf.c:2054 lib/sh/snprintf.c:2055
+#, c-format
+msgid "/%'g/\n"
+msgstr ""
+
+#: lib/sh/strerror.c:49
+msgid "Unknown system error "
+msgstr ""
+
+#: lib/sh/strftime.c:153
+msgid "Sun"
+msgstr ""
+
+#: lib/sh/strftime.c:153
+msgid "Mon"
+msgstr ""
+
+#: lib/sh/strftime.c:153
+msgid "Tue"
+msgstr ""
+
+#: lib/sh/strftime.c:153
+msgid "Wed"
+msgstr ""
+
+#: lib/sh/strftime.c:154
+msgid "Thu"
+msgstr ""
+
+#: lib/sh/strftime.c:154
+msgid "Fri"
+msgstr ""
+
+#: lib/sh/strftime.c:154
+msgid "Sat"
+msgstr ""
+
+#: lib/sh/strftime.c:157
+msgid "Sunday"
+msgstr ""
+
+#: lib/sh/strftime.c:157
+msgid "Monday"
+msgstr ""
+
+#: lib/sh/strftime.c:157
+msgid "Tuesday"
+msgstr ""
+
+#: lib/sh/strftime.c:157
+msgid "Wednesday"
+msgstr ""
+
+#: lib/sh/strftime.c:158
+msgid "Thursday"
+msgstr ""
+
+#: lib/sh/strftime.c:158
+msgid "Friday"
+msgstr ""
+
+#: lib/sh/strftime.c:158
+msgid "Saturday"
+msgstr ""
+
+#: lib/sh/strftime.c:161
+msgid "Jan"
+msgstr ""
+
+#: lib/sh/strftime.c:161
+msgid "Feb"
+msgstr ""
+
+#: lib/sh/strftime.c:161
+msgid "Mar"
+msgstr ""
+
+#: lib/sh/strftime.c:161
+msgid "Apr"
+msgstr ""
+
+#: lib/sh/strftime.c:161 lib/sh/strftime.c:166
+msgid "May"
+msgstr ""
+
+#: lib/sh/strftime.c:161
+msgid "Jun"
+msgstr ""
+
+#: lib/sh/strftime.c:162
+msgid "Jul"
+msgstr ""
+
+#: lib/sh/strftime.c:162
+msgid "Aug"
+msgstr ""
+
+#: lib/sh/strftime.c:162
+msgid "Sep"
+msgstr ""
+
+#: lib/sh/strftime.c:162
+msgid "Oct"
+msgstr ""
+
+#: lib/sh/strftime.c:162
+msgid "Nov"
+msgstr ""
+
+#: lib/sh/strftime.c:162
+msgid "Dec"
+msgstr ""
+
+#: lib/sh/strftime.c:165
+msgid "January"
+msgstr ""
+
+#: lib/sh/strftime.c:165
+msgid "February"
+msgstr ""
+
+#: lib/sh/strftime.c:165
+msgid "March"
+msgstr ""
+
+#: lib/sh/strftime.c:165
+msgid "April"
+msgstr ""
+
+#: lib/sh/strftime.c:166
+msgid "June"
+msgstr ""
+
+#: lib/sh/strftime.c:166
+msgid "July"
+msgstr ""
+
+#: lib/sh/strftime.c:166
+msgid "August"
+msgstr ""
+
+#: lib/sh/strftime.c:166
+msgid "September"
+msgstr ""
+
+#: lib/sh/strftime.c:167
+msgid "October"
+msgstr ""
+
+#: lib/sh/strftime.c:167
+msgid "November"
+msgstr ""
+
+#: lib/sh/strftime.c:167
+msgid "December"
+msgstr ""
+
+#: lib/sh/strftime.c:169
+msgid "AM"
+msgstr ""
+
+#: lib/sh/strftime.c:169
+msgid "PM"
+msgstr ""
+
+#: lib/sh/strftime.c:270
+msgid "%A %B %d %T %Y"
+msgstr ""
+
+#: lib/sh/strftime.c:275 lib/sh/strftime.c:280 lib/sh/strftime.c:321
+#: lib/sh/strftime.c:329 lib/sh/strftime.c:338 lib/sh/strftime.c:347
+#: lib/sh/strftime.c:352 lib/sh/strftime.c:393 lib/sh/strftime.c:413
+#: lib/sh/strftime.c:417 lib/sh/strftime.c:426 lib/sh/strftime.c:440
+#, c-format
+msgid "%02d"
+msgstr ""
+
+#: lib/sh/strftime.c:284
+msgid "%m/%d/%y"
+msgstr ""
+
+#: lib/sh/strftime.c:288 lib/sh/strftime.c:519 lib/sh/strftime.c:528
+#, c-format
+msgid "%2d"
+msgstr ""
+
+#: lib/sh/strftime.c:296
+msgid "%Y-%m-%d"
+msgstr ""
+
+#: lib/sh/strftime.c:342
+#, c-format
+msgid "%03d"
+msgstr ""
+
+#: lib/sh/strftime.c:373
+msgid "%I:%M:%S %p"
+msgstr ""
+
+#: lib/sh/strftime.c:386 lib/malloc/stats.c:181
+#, c-format
+msgid "%ld"
+msgstr ""
+
+#: lib/sh/strftime.c:430
+msgid "%A %B %d %Y"
+msgstr ""
+
+#: lib/sh/strftime.c:495
+#, c-format
+msgid "%02d%02d"
+msgstr ""
+
+#: lib/sh/strftime.c:544
+#, c-format
+msgid "%2d-%3.3s-%4d"
+msgstr ""
+
+#: lib/sh/strftime.c:786
+#, c-format
+msgid "(%%A)      full weekday name, var length (Sunday..Saturday)  %A"
+msgstr ""
+
+#: lib/sh/strftime.c:787
+msgid "(%%B)       full month name, var length (January..December)  %B"
+msgstr ""
+
+#: lib/sh/strftime.c:788
+#, c-format
+msgid "(%%C)                                               Century  %C"
+msgstr ""
+
+#: lib/sh/strftime.c:789
+msgid "(%%D)                                       date (%%m/%%d/%%y)  %D"
+msgstr ""
+
+#: lib/sh/strftime.c:790
+#, c-format
+msgid "(%%E)                           Locale extensions (ignored)  %E"
+msgstr ""
+
+#: lib/sh/strftime.c:791
+#, c-format
+msgid "(%%F)       full month name, var length (January..December)  %F"
+msgstr ""
+
+#: lib/sh/strftime.c:792
+msgid "(%%H)                          hour (24-hour clock, 00..23)  %H"
+msgstr ""
+
+#: lib/sh/strftime.c:793
+msgid "(%%I)                          hour (12-hour clock, 01..12)  %I"
+msgstr ""
+
+#: lib/sh/strftime.c:794
+msgid "(%%M)                                       minute (00..59)  %M"
+msgstr ""
+
+#: lib/sh/strftime.c:795
+msgid "(%%N)                                      Emporer/Era Name  %N"
+msgstr ""
+
+#: lib/sh/strftime.c:796
+msgid "(%%O)                           Locale extensions (ignored)  %O"
+msgstr ""
+
+#: lib/sh/strftime.c:797
+msgid "(%%R)                                 time, 24-hour (%%H:%%M)  %R"
+msgstr ""
+
+#: lib/sh/strftime.c:798
+#, c-format
+msgid "(%%S)                                       second (00..60)  %S"
+msgstr ""
+
+#: lib/sh/strftime.c:799
+msgid "(%%T)                              time, 24-hour (%%H:%%M:%%S)  %T"
+msgstr ""
+
+#: lib/sh/strftime.c:800
+msgid "(%%U)    week of year, Sunday as first day of week (00..53)  %U"
+msgstr ""
+
+#: lib/sh/strftime.c:801
+msgid "(%%V)                    week of year according to ISO 8601  %V"
+msgstr ""
+
+#: lib/sh/strftime.c:802
+msgid "(%%W)    week of year, Monday as first day of week (00..53)  %W"
+msgstr ""
+
+#: lib/sh/strftime.c:803
+msgid "(%%X)     appropriate locale time representation (%H:%M:%S)  %X"
+msgstr ""
+
+#: lib/sh/strftime.c:804
+msgid "(%%Y)                           year with century (1970...)  %Y"
+msgstr ""
+
+#: lib/sh/strftime.c:805
+msgid "(%%Z) timezone (EDT), or blank if timezone not determinable  %Z"
+msgstr ""
+
+#: lib/sh/strftime.c:806
+#, c-format
+msgid "(%%a)          locale's abbreviated weekday name (Sun..Sat)  %a"
+msgstr ""
+
+#: lib/sh/strftime.c:807
+msgid "(%%b)            locale's abbreviated month name (Jan..Dec)  %b"
+msgstr ""
+
+#: lib/sh/strftime.c:808
+msgid "(%%c)           full date (Sat Nov  4 12:02:33 1989)%n%t%t%t  %c"
+msgstr ""
+
+#: lib/sh/strftime.c:809
+#, c-format
+msgid "(%%d)                             day of the month (01..31)  %d"
+msgstr ""
+
+#: lib/sh/strftime.c:810
+#, c-format
+msgid "(%%e)               day of the month, blank-padded ( 1..31)  %e"
+msgstr ""
+
+#: lib/sh/strftime.c:811
+msgid "(%%h)                                should be same as (%%b)  %h"
+msgstr ""
+
+#: lib/sh/strftime.c:812
+msgid "(%%j)                            day of the year (001..366)  %j"
+msgstr ""
+
+#: lib/sh/strftime.c:813
+msgid "(%%k)               hour, 24-hour clock, blank pad ( 0..23)  %k"
+msgstr ""
+
+#: lib/sh/strftime.c:814
+msgid "(%%l)               hour, 12-hour clock, blank pad ( 0..12)  %l"
+msgstr ""
+
+#: lib/sh/strftime.c:815
+#, c-format
+msgid "(%%m)                                        month (01..12)  %m"
+msgstr ""
+
+#: lib/sh/strftime.c:816
+#, c-format
+msgid "(%%o)                                      Emporer/Era Year  %o"
+msgstr ""
+
+#: lib/sh/strftime.c:817
+#, c-format
+msgid "(%%p)              locale's AM or PM based on 12-hour clock  %p"
+msgstr ""
+
+#: lib/sh/strftime.c:818
+msgid "(%%r)                   time, 12-hour (same as %%I:%%M:%%S %%p)  %r"
+msgstr ""
+
+#: lib/sh/strftime.c:819
+#, c-format
+msgid "(%%u) ISO 8601: Weekday as decimal number [1 (Monday) - 7]   %u"
+msgstr ""
+
+#: lib/sh/strftime.c:820
+msgid "(%%v)                                VMS date (dd-bbb-YYYY)  %v"
+msgstr ""
+
+#: lib/sh/strftime.c:821
+msgid "(%%w)                       day of week (0..6, Sunday == 0)  %w"
+msgstr ""
+
+#: lib/sh/strftime.c:822
+#, c-format
+msgid "(%%x)                appropriate locale date representation  %x"
+msgstr ""
+
+#: lib/sh/strftime.c:823
+msgid "(%%y)                      last two digits of year (00..99)  %y"
+msgstr ""
+
+#: lib/sh/strftime.c:824
+msgid "(%%z)      timezone offset east of GMT as HHMM (e.g. -0500)  %z"
+msgstr ""
+
+#: lib/sh/stringlist.c:235
+#, c-format
+msgid "%s%s\n"
+msgstr ""
+
+#: lib/sh/strtoimax.c:38 lib/sh/strtoimax.c:45 lib/sh/strtoumax.c:38
+#: lib/sh/strtoumax.c:45
+msgid "this configure-time declaration test was not run"
+msgstr ""
+
+#: lib/sh/strtoimax.c:83
+#, c-format
+msgid "sizeof intmax_t: %d\n"
+msgstr ""
+
+#: lib/sh/strtoimax.c:86
+#, c-format
+msgid "sizeof long long: %d\n"
+msgstr ""
+
+#: lib/sh/strtoimax.c:88
+#, c-format
+msgid "sizeof long: %d\n"
+msgstr ""
+
+#: lib/sh/strtoimax.c:98
+#, c-format
+msgid "%lld %lld %ld\n"
+msgstr ""
+
+#: lib/sh/strtoumax.c:83
+#, c-format
+msgid "sizeof uintmax_t: %d\n"
+msgstr ""
+
+#: lib/sh/strtoumax.c:86
+#, c-format
+msgid "sizeof unsigned long long: %d\n"
+msgstr ""
+
+#: lib/sh/strtoumax.c:88
+#, c-format
+msgid "sizeof unsigned long: %d\n"
+msgstr ""
+
+#: lib/sh/strtoumax.c:98
+#, c-format
+msgid "%llu %llu %lu\n"
+msgstr ""
+
+#: lib/sh/tmpfile.c:46
+msgid "shtmp"
+msgstr ""
+
+#: lib/sh/tmpfile.c:73
+msgid "/var/tmp"
+msgstr ""
+
+#: lib/sh/tmpfile.c:77
+msgid "/usr/tmp"
+msgstr ""
+
+#: lib/sh/tmpfile.c:92
+msgid "TMPDIR"
+msgstr ""
+
+#: lib/sh/tmpfile.c:122 lib/sh/tmpfile.c:167
+#, c-format
+msgid "%s/%s.XXXXXX"
+msgstr ""
+
+#: lib/sh/tmpfile.c:135 lib/sh/tmpfile.c:184
+#, c-format
+msgid "%s/%s-%lu"
+msgstr ""
+
+#: lib/sh/tmpfile.c:212
+msgid "w+"
+msgstr ""
+
+#: lib/malloc/alloca.c:446
+#, c-format
+msgid "%011o %011o %011o\n"
+msgstr ""
+
+#: lib/malloc/alloca.c:467
+#, c-format
+msgid "%011o %011o\n"
+msgstr ""
+
+#: lib/malloc/i386-alloca.s:1
+msgid "alloca.s"
+msgstr ""
+
+#: lib/malloc/imalloc.h:52
+msgid "x"
+msgstr ""
+
+#: lib/malloc/malloc.c:298
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr ""
+
+#: lib/malloc/malloc.c:314
+#, c-format
+msgid ""
+"\r\n"
+"malloc: %s:%d: assertion botched\r\n"
+msgstr ""
+
+#: lib/malloc/malloc.c:355
+msgid "bcoalesce: CHAIN(mp2) != mp1"
+msgstr ""
+
+#: lib/malloc/malloc.c:604
+msgid "malloc_debug_dummy\n"
+msgstr ""
+
+#: lib/malloc/malloc.c:740
+msgid "malloc: block on free list clobbered"
+msgstr ""
+
+#: lib/malloc/malloc.c:766 lib/malloc/malloc.c:768 lib/malloc/malloc.c:773
+msgid "malloc"
+msgstr ""
+
+#: lib/malloc/malloc.c:817
+msgid "free: called with already freed block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:820
+msgid "free: called with unallocated block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:839
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr ""
+
+#: lib/malloc/malloc.c:845
+msgid "free: start and end chunk sizes differ"
+msgstr ""
+
+#: lib/malloc/malloc.c:942
+msgid "realloc: called with unallocated block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:957
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr ""
+
+#: lib/malloc/malloc.c:963
+msgid "realloc: start and end chunk sizes differ"
+msgstr ""
+
+#: lib/malloc/malloc.c:1009 lib/malloc/malloc.c:1011 lib/malloc/malloc.c:1016
+msgid "realloc"
+msgstr ""
+
+#: lib/malloc/memtest.c:125 lib/malloc/memtest.c:138
+msgid "malloc-test: "
+msgstr ""
+
+#: lib/malloc/stats.c:99
+#, c-format
+msgid ""
+"Memory allocation statistics: %s\n"
+"    size\tfree\tin use\ttotal\tmorecore lesscore split\tcoalesce\n"
+msgstr ""
+
+#: lib/malloc/stats.c:104
+#, c-format
+msgid "%8lu\t%4d\t%6d\t%5d\t%8d\t%d %5d %8d\n"
+msgstr ""
+
+#: lib/malloc/stats.c:108
+#, c-format
+msgid ""
+"\n"
+"Total bytes in use: %lu, total bytes free: %lu\n"
+msgstr ""
+
+#: lib/malloc/stats.c:110
+#, c-format
+msgid ""
+"\n"
+"Total bytes requested by application: %lu\n"
+msgstr ""
+
+#: lib/malloc/stats.c:111
+#, c-format
+msgid "Total mallocs: %d, total frees: %d, total reallocs: %d (%d copies)\n"
+msgstr ""
+
+#: lib/malloc/stats.c:113
+#, c-format
+msgid "Total sbrks: %d, total bytes via sbrk: %d\n"
+msgstr ""
+
+#: lib/malloc/stats.c:115
+#, c-format
+msgid "Total blocks split: %d, total block coalesces: %d\n"
+msgstr ""
+
+#: lib/malloc/stats.c:134
+msgid "/var/tmp/maltrace/stats."
+msgstr ""
+
+#: lib/malloc/stats.c:172
+#, c-format
+msgid "%s%ld"
+msgstr ""
+
+#: lib/malloc/table.c:152
+#, c-format
+msgid "malloc: %p: %s: last %s from %s:%d\n"
+msgstr ""
+
+#: lib/malloc/table.c:154 lib/malloc/table.c:155 lib/malloc/table.c:239
+#: lib/malloc/watch.c:46
+msgid "allocated"
+msgstr ""
+
+#: lib/malloc/table.c:154 lib/malloc/table.c:222 lib/malloc/table.c:237
+msgid "free"
+msgstr ""
+
+#: lib/malloc/table.c:155 lib/malloc/watch.c:48
+msgid "freed"
+msgstr ""
+
+#: lib/malloc/table.c:175
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr ""
+
+#: lib/malloc/table.c:182
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr ""
+
+#: lib/malloc/table.c:211
+#, c-format
+msgid "register_free: %p not in allocation table?\n"
+msgstr ""
+
+#: lib/malloc/table.c:218
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr ""
+
+#: lib/malloc/table.c:241
+msgid "undetermined?"
+msgstr ""
+
+#: lib/malloc/table.c:255
+#, c-format
+msgid "[%d] %p:%d:%s:%s:%s:%d:%d:%d\n"
+msgstr ""
+
+#: lib/malloc/trace.c:51
+#, c-format
+msgid "alloc: %s: %p (%d bytes) from '%s:%d'\n"
+msgstr ""
+
+#: lib/malloc/trace.c:54
+#, c-format
+msgid "alloc:%p:%d:%s:%d\n"
+msgstr ""
+
+#: lib/malloc/trace.c:69
+#, c-format
+msgid "free: %p (%d bytes) from '%s:%d'\n"
+msgstr ""
+
+#: lib/malloc/trace.c:72
+#, c-format
+msgid "free:%p:%d:%s:%d\n"
+msgstr ""
+
+#: lib/malloc/trace.c:107
+msgid "/var/tmp/maltrace/trace."
+msgstr ""
+
+#: lib/malloc/watch.c:50
+msgid "requesting resize"
+msgstr ""
+
+#: lib/malloc/watch.c:52
+msgid "just resized"
+msgstr ""
+
+#: lib/malloc/watch.c:54
+msgid "bug: unknown operation"
+msgstr ""
+
+#: lib/malloc/watch.c:56
+#, c-format
+msgid "malloc: watch alert: %p %s "
+msgstr ""
+
+#: lib/malloc/watch.c:58
+#, c-format
+msgid "(size %lu) "
+msgstr ""
+
+#: lib/malloc/watch.c:59
+#, c-format
+msgid "from '%s:%d'\n"
+msgstr ""
+
+#: lib/malloc/x386-alloca.s:10
+msgid "masm"
+msgstr ""
+
+#: lib/malloc/xmalloc.c:55
+#, c-format
+msgid "%s: out of virtual memory\n"
+msgstr ""
+
+#: lib/malloc/xmalloc.c:70
+msgid "xmalloc"
+msgstr ""
+
+#: lib/malloc/xmalloc.c:84
+msgid "xrealloc"
+msgstr ""
diff --git a/po.orig/bash.pot b/po.orig/bash.pot
new file mode 100644 (file)
index 0000000..3340d22
--- /dev/null
@@ -0,0 +1,4174 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#: builtins/caller.def:128 builtins/caller.def:132 builtins/pushd.def:655
+#: builtins/pushd.def:663 builtins/pushd.def:666 builtins/pushd.def:676
+#: builtins/pushd.def:680 builtins/pushd.def:684 builtins/pushd.def:687
+#: builtins/pushd.def:690 builtins/pushd.def:699 builtins/pushd.def:703
+#: builtins/pushd.def:707 builtins/pushd.def:710 builtins.c:321 builtins.c:325
+#: builtins.c:390 builtins.c:392 builtins.c:401 builtins.c:404 builtins.c:408
+#: builtins.c:445 builtins.c:487 builtins.c:491 builtins.c:498 builtins.c:509
+#: builtins.c:513 builtins.c:552 builtins.c:555 builtins.c:559 builtins.c:562
+#: builtins.c:630 builtins.c:637 builtins.c:692 builtins.c:713 builtins.c:718
+#: builtins.c:722 builtins.c:745 builtins.c:835 builtins.c:919 builtins.c:921
+#: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952
+#: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973
+#: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028
+#: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062
+#: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309
+#: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331
+#: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354
+#: builtins.c:1362 builtins.c:1365
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: bug-bash@gnu.org\n"
+"POT-Creation-Date: 2003-12-22 15:34-0500\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: arrayfunc.c:45
+msgid "bad array subscript"
+msgstr ""
+
+#: arrayfunc.c:306
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr ""
+
+#: bashhist.c:321
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr ""
+
+#: bashline.c:2791
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr ""
+
+#: bashline.c:2840
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr ""
+
+#: bashline.c:2869
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr ""
+
+#: bashline.c:2903
+#, c-format
+msgid "%s: missing colon separator"
+msgstr ""
+
+#: builtins/alias.def:123
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr ""
+
+#: builtins/bind.def:194
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr ""
+
+#: builtins/bind.def:233
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr ""
+
+#: builtins/bind.def:248
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr ""
+
+#: builtins/bind.def:283
+#, c-format
+msgid "`%s': unknown function name"
+msgstr ""
+
+#: builtins/bind.def:291
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr ""
+
+#: builtins/bind.def:295
+#, c-format
+msgid "%s can be invoked via "
+msgstr ""
+
+#: builtins/break.def:128
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr ""
+
+#: builtins/caller.def:127 builtins.c:320
+msgid "Returns the context of the current subroutine call."
+msgstr ""
+
+#: builtins/caller.def:129 builtins.c:322
+msgid "Without EXPR, returns returns \"$line $filename\".  With EXPR,"
+msgstr ""
+
+#: builtins/caller.def:130 builtins.c:323
+msgid "returns \"$line $subroutine $filename\"; this extra information"
+msgstr ""
+
+#: builtins/caller.def:131 builtins.c:324
+msgid "can be used used to provide a stack trace."
+msgstr ""
+
+#: builtins/caller.def:133 builtins.c:326
+msgid "The value of EXPR indicates how many call frames to go back before the"
+msgstr ""
+
+#: builtins/caller.def:134 builtins.c:327
+msgid "current one; the top frame is frame 0."
+msgstr ""
+
+#: builtins/cd.def:188
+msgid "HOME not set"
+msgstr ""
+
+#: builtins/cd.def:200
+msgid "OLDPWD not set"
+msgstr ""
+
+#: builtins/cd.def:357
+#, c-format
+msgid "write error: %s"
+msgstr ""
+
+#: builtins/common.c:133 test.c:921
+msgid "too many arguments"
+msgstr ""
+
+#: builtins/common.c:157 shell.c:465 shell.c:737
+#, c-format
+msgid "%s: option requires an argument"
+msgstr ""
+
+#: builtins/common.c:164
+#, c-format
+msgid "%s: numeric argument required"
+msgstr ""
+
+#: builtins/common.c:171
+#, c-format
+msgid "%s: not found"
+msgstr ""
+
+#: builtins/common.c:180 shell.c:750
+#, c-format
+msgid "%s: invalid option"
+msgstr ""
+
+#: builtins/common.c:187
+#, c-format
+msgid "%s: invalid option name"
+msgstr ""
+
+#: builtins/common.c:194 general.c:229 general.c:234
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr ""
+
+#: builtins/common.c:201
+#, c-format
+msgid "%s: invalid number"
+msgstr ""
+
+#: builtins/common.c:208
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr ""
+
+#: builtins/common.c:215
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr ""
+
+#: builtins/common.c:222 error.c:453
+#, c-format
+msgid "%s: readonly variable"
+msgstr ""
+
+#: builtins/common.c:230
+#, c-format
+msgid "%s: %s out of range"
+msgstr ""
+
+#: builtins/common.c:230 builtins/common.c:232
+msgid "argument"
+msgstr ""
+
+#: builtins/common.c:232
+#, c-format
+msgid "%s out of range"
+msgstr ""
+
+#: builtins/common.c:240
+#, c-format
+msgid "%s: no such job"
+msgstr ""
+
+#: builtins/common.c:248
+#, c-format
+msgid "%s: no job control"
+msgstr ""
+
+#: builtins/common.c:250
+msgid "no job control"
+msgstr ""
+
+#: builtins/common.c:260
+#, c-format
+msgid "%s: restricted"
+msgstr ""
+
+#: builtins/common.c:262
+msgid "restricted"
+msgstr ""
+
+#: builtins/common.c:270
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr ""
+
+#: builtins/common.c:486
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr ""
+
+#: builtins/common.c:553 builtins/common.c:555
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr ""
+
+#: builtins/complete.def:251
+#, c-format
+msgid "%s: invalid action name"
+msgstr ""
+
+#: builtins/complete.def:381 builtins/complete.def:524
+#, c-format
+msgid "%s: no completion specification"
+msgstr ""
+
+#: builtins/complete.def:571
+msgid "warning: -F option may not work as you expect"
+msgstr ""
+
+#: builtins/complete.def:573
+msgid "warning: -C option may not work as you expect"
+msgstr ""
+
+#: builtins/declare.def:105
+msgid "can only be used in a function"
+msgstr ""
+
+#: builtins/declare.def:295
+msgid "cannot use `-f' to make functions"
+msgstr ""
+
+#: builtins/declare.def:307 execute_cmd.c:3949
+#, c-format
+msgid "%s: readonly function"
+msgstr ""
+
+#: builtins/declare.def:389
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr ""
+
+#: builtins/enable.def:128 builtins/enable.def:136
+msgid "dynamic loading not available"
+msgstr ""
+
+#: builtins/enable.def:303
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr ""
+
+#: builtins/enable.def:326
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr ""
+
+#: builtins/enable.def:450
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr ""
+
+#: builtins/enable.def:465
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr ""
+
+#: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395
+#, c-format
+msgid "%s: is a directory"
+msgstr ""
+
+#: builtins/evalfile.c:133
+#, c-format
+msgid "%s: not a regular file"
+msgstr ""
+
+#: builtins/evalfile.c:141
+#, c-format
+msgid "%s: file is too large"
+msgstr ""
+
+#: builtins/exec.def:205
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr ""
+
+#: builtins/exit.def:83
+msgid "not login shell: use `exit'"
+msgstr ""
+
+#: builtins/exit.def:111
+msgid "There are stopped jobs.\n"
+msgstr ""
+
+#: builtins/fc.def:252
+msgid "no command found"
+msgstr ""
+
+#: builtins/fc.def:317
+msgid "history specification"
+msgstr ""
+
+#: builtins/fc.def:338
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr ""
+
+#: builtins/fg_bg.def:133
+#, c-format
+msgid "job %d started without job control"
+msgstr ""
+
+#: builtins/getopt.c:109
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: builtins/hash.def:83
+msgid "hashing disabled"
+msgstr ""
+
+#: builtins/hash.def:128
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr ""
+
+#: builtins/help.def:108
+msgid "Shell commands matching keywords `"
+msgstr ""
+
+#: builtins/help.def:110
+msgid "Shell commands matching keyword `"
+msgstr ""
+
+#: builtins/help.def:138
+#, c-format
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+
+#: builtins/help.def:164
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr ""
+
+#: builtins/help.def:182
+msgid ""
+"These shell commands are defined internally.  Type `help' to see this list.\n"
+"Type `help name' to find out more about the function `name'.\n"
+"Use `info bash' to find out more about the shell in general.\n"
+"Use `man -k' or `info' to find out more about commands not in this list.\n"
+"\n"
+"A star (*) next to a name means that the command is disabled.\n"
+"\n"
+msgstr ""
+
+#: builtins/history.def:148
+msgid "cannot use more than one of -anrw"
+msgstr ""
+
+#: builtins/history.def:180
+msgid "history position"
+msgstr ""
+
+#: builtins/history.def:390
+#, c-format
+msgid "%s: history expansion failed"
+msgstr ""
+
+#: builtins/jobs.def:99
+msgid "no other options allowed with `-x'"
+msgstr ""
+
+#: builtins/kill.def:187
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr ""
+
+#: builtins/kill.def:248
+msgid "Unknown error"
+msgstr ""
+
+#: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511
+msgid "expression expected"
+msgstr ""
+
+#: builtins/printf.def:249
+#, c-format
+msgid "`%s': missing format character"
+msgstr ""
+
+#: builtins/printf.def:408
+#, c-format
+msgid "`%c': invalid format character"
+msgstr ""
+
+#: builtins/printf.def:601
+msgid "missing hex digit for \\x"
+msgstr ""
+
+#: builtins/pushd.def:168
+msgid "no other directory"
+msgstr ""
+
+#: builtins/pushd.def:435
+msgid "<no current directory>"
+msgstr ""
+
+#: builtins/pushd.def:652 builtins.c:1351
+msgid "Display the list of currently remembered directories.  Directories"
+msgstr ""
+
+#: builtins/pushd.def:653 builtins.c:1352
+msgid "find their way onto the list with the `pushd' command; you can get"
+msgstr ""
+
+#: builtins/pushd.def:654 builtins.c:1353
+msgid "back up through the list with the `popd' command."
+msgstr ""
+
+#: builtins/pushd.def:656 builtins.c:1355
+msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+msgstr ""
+
+#: builtins/pushd.def:657 builtins.c:1356
+msgid "of directories which are relative to your home directory.  This means"
+msgstr ""
+
+#: builtins/pushd.def:658 builtins.c:1357
+msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
+msgstr ""
+
+#: builtins/pushd.def:659 builtins.c:1358
+msgid "causes `dirs' to print the directory stack with one entry per line,"
+msgstr ""
+
+#: builtins/pushd.def:660 builtins.c:1359
+msgid "prepending the directory name with its position in the stack.  The -p"
+msgstr ""
+
+#: builtins/pushd.def:661 builtins.c:1360
+msgid "flag does the same thing, but the stack position is not prepended."
+msgstr ""
+
+#: builtins/pushd.def:662 builtins.c:1361
+msgid "The -c flag clears the directory stack by deleting all of the elements."
+msgstr ""
+
+#: builtins/pushd.def:664
+msgid "+N   displays the Nth entry counting from the left of the list shown by"
+msgstr ""
+
+#: builtins/pushd.def:665 builtins/pushd.def:668
+msgid "     dirs when invoked without options, starting with zero."
+msgstr ""
+
+#: builtins/pushd.def:667
+msgid ""
+"-N   displays the Nth entry counting from the right of the list shown by"
+msgstr ""
+
+#: builtins/pushd.def:673 builtins.c:1302
+msgid "Adds a directory to the top of the directory stack, or rotates"
+msgstr ""
+
+#: builtins/pushd.def:674 builtins.c:1303
+msgid "the stack, making the new top of the stack the current working"
+msgstr ""
+
+#: builtins/pushd.def:675 builtins.c:1304
+msgid "directory.  With no arguments, exchanges the top two directories."
+msgstr ""
+
+#: builtins/pushd.def:677
+msgid "+N   Rotates the stack so that the Nth directory (counting"
+msgstr ""
+
+#: builtins/pushd.def:678
+msgid "     from the left of the list shown by `dirs', starting with"
+msgstr ""
+
+#: builtins/pushd.def:679 builtins/pushd.def:683
+msgid "     zero) is at the top."
+msgstr ""
+
+#: builtins/pushd.def:681
+msgid "-N   Rotates the stack so that the Nth directory (counting"
+msgstr ""
+
+#: builtins/pushd.def:682
+msgid "     from the right of the list shown by `dirs', starting with"
+msgstr ""
+
+#: builtins/pushd.def:685
+msgid "-n   suppress the normal change of directory when adding directories"
+msgstr ""
+
+#: builtins/pushd.def:686
+msgid "     to the stack, so only the stack is manipulated."
+msgstr ""
+
+#: builtins/pushd.def:688
+msgid "dir  adds DIR to the directory stack at the top, making it the"
+msgstr ""
+
+#: builtins/pushd.def:689
+msgid "     new current working directory."
+msgstr ""
+
+#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320
+#: builtins.c:1343
+msgid "You can see the directory stack with the `dirs' command."
+msgstr ""
+
+#: builtins/pushd.def:696 builtins.c:1328
+msgid "Removes entries from the directory stack.  With no arguments,"
+msgstr ""
+
+#: builtins/pushd.def:697 builtins.c:1329
+msgid "removes the top directory from the stack, and cd's to the new"
+msgstr ""
+
+#: builtins/pushd.def:698 builtins.c:1330
+msgid "top directory."
+msgstr ""
+
+#: builtins/pushd.def:700
+msgid "+N   removes the Nth entry counting from the left of the list"
+msgstr ""
+
+#: builtins/pushd.def:701
+msgid "     shown by `dirs', starting with zero.  For example: `popd +0'"
+msgstr ""
+
+#: builtins/pushd.def:702
+msgid "     removes the first directory, `popd +1' the second."
+msgstr ""
+
+#: builtins/pushd.def:704
+msgid "-N   removes the Nth entry counting from the right of the list"
+msgstr ""
+
+#: builtins/pushd.def:705
+msgid "     shown by `dirs', starting with zero.  For example: `popd -0'"
+msgstr ""
+
+#: builtins/pushd.def:706
+msgid "     removes the last directory, `popd -1' the next to last."
+msgstr ""
+
+#: builtins/pushd.def:708
+msgid "-n   suppress the normal change of directory when removing directories"
+msgstr ""
+
+#: builtins/pushd.def:709
+msgid "     from the stack, so only the stack is manipulated."
+msgstr ""
+
+#: builtins/read.def:207
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr ""
+
+#: builtins/read.def:230
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr ""
+
+#: builtins/read.def:237
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr ""
+
+#: builtins/read.def:463
+#, c-format
+msgid "read error: %d: %s"
+msgstr ""
+
+#: builtins/return.def:63
+msgid "can only `return' from a function or sourced script"
+msgstr ""
+
+#: builtins/set.def:743
+msgid "cannot simultaneously unset a function and a variable"
+msgstr ""
+
+#: builtins/set.def:780
+#, c-format
+msgid "%s: cannot unset"
+msgstr ""
+
+#: builtins/set.def:787
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr ""
+
+#: builtins/set.def:798
+#, c-format
+msgid "%s: not an array variable"
+msgstr ""
+
+#: builtins/setattr.def:165
+#, c-format
+msgid "%s: not a function"
+msgstr ""
+
+#: builtins/shift.def:66 builtins/shift.def:72
+msgid "shift count"
+msgstr ""
+
+#: builtins/shopt.def:226
+msgid "cannot set and unset shell options simultaneously"
+msgstr ""
+
+#: builtins/shopt.def:291
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr ""
+
+#: builtins/source.def:117
+msgid "filename argument required"
+msgstr ""
+
+#: builtins/source.def:137
+#, c-format
+msgid "%s: file not found"
+msgstr ""
+
+#: builtins/suspend.def:93
+msgid "cannot suspend"
+msgstr ""
+
+#: builtins/suspend.def:103
+msgid "cannot suspend a login shell"
+msgstr ""
+
+#: builtins/type.def:231
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr ""
+
+#: builtins/type.def:252
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr ""
+
+#: builtins/type.def:272
+#, c-format
+msgid "%s is a function\n"
+msgstr ""
+
+#: builtins/type.def:297
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr ""
+
+#: builtins/type.def:318
+#, c-format
+msgid "%s is %s\n"
+msgstr ""
+
+#: builtins/type.def:338
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr ""
+
+#: builtins/ulimit.def:332
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr ""
+
+#: builtins/ulimit.def:358
+#, c-format
+msgid "`%c': bad command"
+msgstr ""
+
+#: builtins/ulimit.def:387
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr ""
+
+#: builtins/ulimit.def:425
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr ""
+
+#: builtins/umask.def:112
+msgid "octal number"
+msgstr ""
+
+#: builtins/umask.def:226
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr ""
+
+#: builtins/umask.def:279
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr ""
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr ""
+
+#: error.c:173
+msgid "Aborting..."
+msgstr ""
+
+#: error.c:260
+#, c-format
+msgid "%s: warning: "
+msgstr ""
+
+#: error.c:405
+msgid "unknown command error"
+msgstr ""
+
+#: error.c:406
+msgid "bad command type"
+msgstr ""
+
+#: error.c:407
+msgid "bad connector"
+msgstr ""
+
+#: error.c:408
+msgid "bad jump"
+msgstr ""
+
+#: error.c:446
+#, c-format
+msgid "%s: unbound variable"
+msgstr ""
+
+#: eval.c:175
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr ""
+
+#: execute_cmd.c:466
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr ""
+
+#: execute_cmd.c:1036
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr ""
+
+#: execute_cmd.c:3521
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr ""
+
+#: execute_cmd.c:3609
+#, c-format
+msgid "%s: command not found"
+msgstr ""
+
+#: execute_cmd.c:3839
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr ""
+
+#: execute_cmd.c:3876
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr ""
+
+#: execute_cmd.c:3988
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr ""
+
+#: expr.c:239
+msgid "expression recursion level exceeded"
+msgstr ""
+
+#: expr.c:263
+msgid "recursion stack underflow"
+msgstr ""
+
+#: expr.c:374
+msgid "syntax error in expression"
+msgstr ""
+
+#: expr.c:414
+msgid "attempted assignment to non-variable"
+msgstr ""
+
+#: expr.c:435 expr.c:440 expr.c:750
+msgid "division by 0"
+msgstr ""
+
+#: expr.c:466
+msgid "bug: bad expassign token"
+msgstr ""
+
+#: expr.c:508
+msgid "`:' expected for conditional expression"
+msgstr ""
+
+#: expr.c:775
+msgid "exponent less than 0"
+msgstr ""
+
+#: expr.c:819
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr ""
+
+#: expr.c:847
+msgid "missing `)'"
+msgstr ""
+
+#: expr.c:871
+msgid "syntax error: operand expected"
+msgstr ""
+
+#: expr.c:1146
+msgid "invalid number"
+msgstr ""
+
+#: expr.c:1150
+msgid "invalid arithmetic base"
+msgstr ""
+
+#: expr.c:1170
+msgid "value too great for base"
+msgstr ""
+
+#: general.c:60
+msgid "getcwd: cannot access parent directories"
+msgstr ""
+
+#: input.c:231
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr ""
+
+#: input.c:239
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr ""
+
+#: jobs.c:693
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr ""
+
+#: jobs.c:1001
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr ""
+
+#: jobs.c:1632 nojobs.c:648
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr ""
+
+#: jobs.c:1815
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr ""
+
+#: jobs.c:2062
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr ""
+
+#: jobs.c:2284
+#, c-format
+msgid "%s: job has terminated"
+msgstr ""
+
+#: jobs.c:2293
+#, c-format
+msgid "%s: job %d already in background"
+msgstr ""
+
+#: jobs.c:3037
+msgid "no job control in this shell"
+msgstr ""
+
+#: lib/malloc/malloc.c:298
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr ""
+
+#: lib/malloc/malloc.c:314
+#, c-format
+msgid ""
+"\r\n"
+"malloc: %s:%d: assertion botched\r\n"
+msgstr ""
+
+#: lib/malloc/malloc.c:740
+msgid "malloc: block on free list clobbered"
+msgstr ""
+
+#: lib/malloc/malloc.c:817
+msgid "free: called with already freed block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:820
+msgid "free: called with unallocated block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:839
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr ""
+
+#: lib/malloc/malloc.c:845
+msgid "free: start and end chunk sizes differ"
+msgstr ""
+
+#: lib/malloc/malloc.c:942
+msgid "realloc: called with unallocated block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:957
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr ""
+
+#: lib/malloc/malloc.c:963
+msgid "realloc: start and end chunk sizes differ"
+msgstr ""
+
+#: lib/malloc/table.c:175
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr ""
+
+#: lib/malloc/table.c:182
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr ""
+
+#: lib/malloc/table.c:218
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr ""
+
+#: lib/malloc/watch.c:46
+msgid "allocated"
+msgstr ""
+
+#: lib/malloc/watch.c:48
+msgid "freed"
+msgstr ""
+
+#: lib/malloc/watch.c:50
+msgid "requesting resize"
+msgstr ""
+
+#: lib/malloc/watch.c:52
+msgid "just resized"
+msgstr ""
+
+#: lib/malloc/watch.c:54
+msgid "bug: unknown operation"
+msgstr ""
+
+#: lib/malloc/watch.c:56
+#, c-format
+msgid "malloc: watch alert: %p %s "
+msgstr ""
+
+#: lib/sh/fmtulong.c:101
+msgid "invalid base"
+msgstr ""
+
+#: lib/sh/netopen.c:158
+#, c-format
+msgid "%s: host unknown"
+msgstr ""
+
+#: lib/sh/netopen.c:165
+#, c-format
+msgid "%s: invalid service"
+msgstr ""
+
+#: lib/sh/netopen.c:296
+#, c-format
+msgid "%s: bad network path specification"
+msgstr ""
+
+#: lib/sh/netopen.c:336
+msgid "network operations not supported"
+msgstr ""
+
+#: mailcheck.c:382
+msgid "You have mail in $_"
+msgstr ""
+
+#: mailcheck.c:407
+msgid "You have new mail in $_"
+msgstr ""
+
+#: mailcheck.c:423
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr ""
+
+#: make_cmd.c:318
+msgid "syntax error: arithmetic expression required"
+msgstr ""
+
+#: make_cmd.c:320
+msgid "syntax error: `;' unexpected"
+msgstr ""
+
+#: make_cmd.c:321
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr ""
+
+#: make_cmd.c:560
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr ""
+
+#: make_cmd.c:730
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr ""
+
+#: parse.y:2726
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr ""
+
+#: parse.y:3011
+msgid "unexpected EOF while looking for `]]'"
+msgstr ""
+
+#: parse.y:3016
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr ""
+
+#: parse.y:3020
+msgid "syntax error in conditional expression"
+msgstr ""
+
+#: parse.y:3098
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr ""
+
+#: parse.y:3102
+msgid "expected `)'"
+msgstr ""
+
+#: parse.y:3130
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr ""
+
+#: parse.y:3134
+msgid "unexpected argument to conditional unary operator"
+msgstr ""
+
+#: parse.y:3171
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr ""
+
+#: parse.y:3175
+msgid "conditional binary operator expected"
+msgstr ""
+
+#: parse.y:3191
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr ""
+
+#: parse.y:3195
+msgid "unexpected argument to conditional binary operator"
+msgstr ""
+
+#: parse.y:3206
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr ""
+
+#: parse.y:3209
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr ""
+
+#: parse.y:3213
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr ""
+
+#: parse.y:4400
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr ""
+
+#: parse.y:4418
+#, c-format
+msgid "syntax error near `%s'"
+msgstr ""
+
+#: parse.y:4428
+msgid "syntax error: unexpected end of file"
+msgstr ""
+
+#: parse.y:4428
+msgid "syntax error"
+msgstr ""
+
+#: parse.y:4490
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr ""
+
+#: parse.y:4649
+msgid "unexpected EOF while looking for matching `)'"
+msgstr ""
+
+#: pcomplete.c:988
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr ""
+
+#: pcomplib.c:179
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr ""
+
+#: print_cmd.c:260
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr ""
+
+#: print_cmd.c:1172
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr ""
+
+#: redir.c:99
+msgid "file descriptor out of range"
+msgstr ""
+
+#: redir.c:141
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr ""
+
+#: redir.c:145
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr ""
+
+#: redir.c:150
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr ""
+
+#: redir.c:155
+#, c-format
+msgid "cannot create temp file for here document: %s"
+msgstr ""
+
+#: redir.c:509
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr ""
+
+#: redir.c:949
+msgid "redirection error: cannot duplicate fd"
+msgstr ""
+
+#: shell.c:302
+msgid "could not find /tmp, please create!"
+msgstr ""
+
+#: shell.c:306
+msgid "/tmp must be a valid directory name"
+msgstr ""
+
+#: shell.c:839
+#, c-format
+msgid "%c%c: invalid option"
+msgstr ""
+
+#: shell.c:1590
+msgid "I have no name!"
+msgstr ""
+
+#: shell.c:1725
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+
+#: shell.c:1727
+msgid "GNU long options:\n"
+msgstr ""
+
+#: shell.c:1731
+msgid "Shell options:\n"
+msgstr ""
+
+#: shell.c:1732
+msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr ""
+
+#: shell.c:1747
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr ""
+
+#: shell.c:1753
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr ""
+
+#: shell.c:1754
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr ""
+
+#: shell.c:1755
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr ""
+
+#: sig.c:485
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr ""
+
+#: subst.c:1011
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr ""
+
+#: subst.c:2020
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr ""
+
+#: subst.c:3516 subst.c:3532
+msgid "cannot make pipe for process substitution"
+msgstr ""
+
+#: subst.c:3563
+msgid "cannot make child for process substitution"
+msgstr ""
+
+#: subst.c:3608
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr ""
+
+#: subst.c:3610
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr ""
+
+#: subst.c:3618
+#, c-format
+msgid "cannout reset nodelay mode for fd %d"
+msgstr ""
+
+#: subst.c:3628
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr ""
+
+#: subst.c:3803
+msgid "cannot make pipe for command substitution"
+msgstr ""
+
+#: subst.c:3832
+msgid "cannot make child for command substitution"
+msgstr ""
+
+#: subst.c:3849
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr ""
+
+#: subst.c:4284
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr ""
+
+#: subst.c:4529
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr ""
+
+#: subst.c:5209
+#, c-format
+msgid "%s: bad substitution"
+msgstr ""
+
+#: subst.c:5283
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr ""
+
+#: subst.c:6652
+#, c-format
+msgid "no match: %s"
+msgstr ""
+
+#: test.c:154
+msgid "argument expected"
+msgstr ""
+
+#: test.c:163
+#, c-format
+msgid "%s: integer expression expected"
+msgstr ""
+
+#: test.c:361
+msgid "`)' expected"
+msgstr ""
+
+#: test.c:363
+#, c-format
+msgid "`)' expected, found %s"
+msgstr ""
+
+#: test.c:378 test.c:787 test.c:790
+#, c-format
+msgid "%s: unary operator expected"
+msgstr ""
+
+#: test.c:543 test.c:830
+#, c-format
+msgid "%s: binary operator expected"
+msgstr ""
+
+#: test.c:905
+msgid "missing `]'"
+msgstr ""
+
+#: trap.c:194
+msgid "invalid signal number"
+msgstr ""
+
+#: trap.c:309
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr ""
+
+#: trap.c:313
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+
+#: trap.c:349
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr ""
+
+#: variables.c:310
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr ""
+
+#: variables.c:670
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr ""
+
+#: variables.c:1610
+msgid "make_local_variable: no function context at current scope"
+msgstr ""
+
+#: variables.c:2709
+msgid "all_local_variables: no function context at current scope"
+msgstr ""
+
+#: variables.c:2923 variables.c:2932
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr ""
+
+#: variables.c:2938
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr ""
+
+#: variables.c:3363
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr ""
+
+#: variables.c:3376
+msgid "pop_var_context: no global_variables context"
+msgstr ""
+
+#: variables.c:3442
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr ""
+
+#: version.c:82
+msgid "Copyright (C) 2004 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: xmalloc.c:93
+#, c-format
+msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr ""
+
+#: xmalloc.c:95
+#, c-format
+msgid "xmalloc: cannot allocate %lu bytes"
+msgstr ""
+
+#: xmalloc.c:115
+#, c-format
+msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+msgstr ""
+
+#: xmalloc.c:117
+#, c-format
+msgid "xrealloc: cannot allocate %lu bytes"
+msgstr ""
+
+#: xmalloc.c:151
+#, c-format
+msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr ""
+
+#: xmalloc.c:153
+#, c-format
+msgid "xmalloc: %s:%d: cannot allocate %lu bytes"
+msgstr ""
+
+#: xmalloc.c:175
+#, c-format
+msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
+msgstr ""
+
+#: xmalloc.c:177
+#, c-format
+msgid "xrealloc: %s:%d: cannot allocate %lu bytes"
+msgstr ""
+
+#: builtins.c:244
+msgid "`alias' with no arguments or with the -p option prints the list"
+msgstr ""
+
+#: builtins.c:245
+msgid "of aliases in the form alias NAME=VALUE on standard output."
+msgstr ""
+
+#: builtins.c:246
+msgid "Otherwise, an alias is defined for each NAME whose VALUE is given."
+msgstr ""
+
+#: builtins.c:247
+msgid "A trailing space in VALUE causes the next word to be checked for"
+msgstr ""
+
+#: builtins.c:248
+msgid "alias substitution when the alias is expanded.  Alias returns"
+msgstr ""
+
+#: builtins.c:249
+msgid "true unless a NAME is given for which no alias has been defined."
+msgstr ""
+
+#: builtins.c:257
+msgid ""
+"Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+msgstr ""
+
+#: builtins.c:258
+msgid "then remove all alias definitions."
+msgstr ""
+
+#: builtins.c:266
+msgid "Bind a key sequence to a Readline function or a macro, or set"
+msgstr ""
+
+#: builtins.c:267
+msgid "a Readline variable.  The non-option argument syntax is equivalent"
+msgstr ""
+
+#: builtins.c:268
+msgid "to that found in ~/.inputrc, but must be passed as a single argument:"
+msgstr ""
+
+#: builtins.c:269
+msgid "bind '\"\\C-x\\C-r\": re-read-init-file'."
+msgstr ""
+
+#: builtins.c:270
+msgid "bind accepts the following options:"
+msgstr ""
+
+#: builtins.c:271
+msgid ""
+"  -m  keymap         Use `keymap' as the keymap for the duration of this"
+msgstr ""
+
+#: builtins.c:272
+msgid "                     command.  Acceptable keymap names are emacs,"
+msgstr ""
+
+#: builtins.c:273
+msgid ""
+"                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+msgstr ""
+
+#: builtins.c:274
+msgid "                     vi-command, and vi-insert."
+msgstr ""
+
+#: builtins.c:275
+msgid "  -l                 List names of functions."
+msgstr ""
+
+#: builtins.c:276
+msgid "  -P                 List function names and bindings."
+msgstr ""
+
+#: builtins.c:277
+msgid "  -p                 List functions and bindings in a form that can be"
+msgstr ""
+
+#: builtins.c:278
+msgid "                     reused as input."
+msgstr ""
+
+#: builtins.c:279
+msgid "  -r  keyseq         Remove the binding for KEYSEQ."
+msgstr ""
+
+#: builtins.c:280
+msgid "  -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when"
+msgstr ""
+
+#: builtins.c:281
+msgid "\t\t\t\tKEYSEQ is entered."
+msgstr ""
+
+#: builtins.c:282
+msgid "  -f  filename       Read key bindings from FILENAME."
+msgstr ""
+
+#: builtins.c:283
+msgid "  -q  function-name  Query about which keys invoke the named function."
+msgstr ""
+
+#: builtins.c:284
+msgid ""
+"  -u  function-name  Unbind all keys which are bound to the named function."
+msgstr ""
+
+#: builtins.c:285
+msgid "  -V                 List variable names and values"
+msgstr ""
+
+#: builtins.c:286
+msgid "  -v                 List variable names and values in a form that can"
+msgstr ""
+
+#: builtins.c:287
+msgid "                     be reused as input."
+msgstr ""
+
+#: builtins.c:288
+msgid ""
+"  -S                 List key sequences that invoke macros and their values"
+msgstr ""
+
+#: builtins.c:289
+msgid ""
+"  -s                 List key sequences that invoke macros and their values"
+msgstr ""
+
+#: builtins.c:290
+msgid "                     in a form that can be reused as input."
+msgstr ""
+
+#: builtins.c:297
+msgid "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,"
+msgstr ""
+
+#: builtins.c:298
+msgid "break N levels."
+msgstr ""
+
+#: builtins.c:304
+msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop."
+msgstr ""
+
+#: builtins.c:305
+msgid "If N is specified, resume at the N-th enclosing loop."
+msgstr ""
+
+#: builtins.c:311
+msgid "Run a shell builtin.  This is useful when you wish to rename a"
+msgstr ""
+
+#: builtins.c:312
+msgid "shell builtin to be a function, but need the functionality of the"
+msgstr ""
+
+#: builtins.c:313
+msgid "builtin within the function itself."
+msgstr ""
+
+#: builtins.c:334
+msgid "Change the current directory to DIR.  The variable $HOME is the"
+msgstr ""
+
+#: builtins.c:335
+msgid "default DIR.  The variable CDPATH defines the search path for"
+msgstr ""
+
+#: builtins.c:336
+msgid "the directory containing DIR.  Alternative directory names in CDPATH"
+msgstr ""
+
+#: builtins.c:337
+msgid "are separated by a colon (:).  A null directory name is the same as"
+msgstr ""
+
+#: builtins.c:338
+msgid "the current directory, i.e. `.'.  If DIR begins with a slash (/),"
+msgstr ""
+
+#: builtins.c:339
+msgid "then CDPATH is not used.  If the directory is not found, and the"
+msgstr ""
+
+#: builtins.c:340
+msgid "shell option `cdable_vars' is set, then try the word as a variable"
+msgstr ""
+
+#: builtins.c:341
+msgid "name.  If that variable has a value, then cd to the value of that"
+msgstr ""
+
+#: builtins.c:342
+msgid "variable.  The -P option says to use the physical directory structure"
+msgstr ""
+
+#: builtins.c:343
+msgid ""
+"instead of following symbolic links; the -L option forces symbolic links"
+msgstr ""
+
+#: builtins.c:344
+msgid "to be followed."
+msgstr ""
+
+#: builtins.c:350
+msgid "Print the current working directory.  With the -P option, pwd prints"
+msgstr ""
+
+#: builtins.c:351
+msgid "the physical directory, without any symbolic links; the -L option"
+msgstr ""
+
+#: builtins.c:352
+msgid "makes pwd follow symbolic links."
+msgstr ""
+
+#: builtins.c:358
+msgid "No effect; the command does nothing.  A zero exit code is returned."
+msgstr ""
+
+#: builtins.c:364
+msgid "Return a successful result."
+msgstr ""
+
+#: builtins.c:370
+msgid "Return an unsuccessful result."
+msgstr ""
+
+#: builtins.c:376
+msgid "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+msgstr ""
+
+#: builtins.c:377
+msgid "function called `ls', and you wish to call the command `ls', you can"
+msgstr ""
+
+#: builtins.c:378
+msgid "say \"command ls\".  If the -p option is given, a default value is used"
+msgstr ""
+
+#: builtins.c:379
+msgid "for PATH that is guaranteed to find all of the standard utilities.  If"
+msgstr ""
+
+#: builtins.c:380
+msgid "the -V or -v option is given, a string is printed describing COMMAND."
+msgstr ""
+
+#: builtins.c:381
+msgid "The -V option produces a more verbose description."
+msgstr ""
+
+#: builtins.c:387
+msgid "Declare variables and/or give them attributes.  If no NAMEs are"
+msgstr ""
+
+#: builtins.c:388
+msgid "given, then display the values of variables instead.  The -p option"
+msgstr ""
+
+#: builtins.c:389
+msgid "will display the attributes and values of each NAME."
+msgstr ""
+
+#: builtins.c:391
+msgid "The flags are:"
+msgstr ""
+
+#: builtins.c:393
+msgid "  -a\tto make NAMEs arrays (if supported)"
+msgstr ""
+
+#: builtins.c:394
+msgid "  -f\tto select from among function names only"
+msgstr ""
+
+#: builtins.c:395
+msgid ""
+"  -F\tto display function names (and line number and source file name if"
+msgstr ""
+
+#: builtins.c:396
+msgid "\tdebugging) without definitions"
+msgstr ""
+
+#: builtins.c:397
+msgid "  -i\tto make NAMEs have the `integer' attribute"
+msgstr ""
+
+#: builtins.c:398
+msgid "  -r\tto make NAMEs readonly"
+msgstr ""
+
+#: builtins.c:399
+msgid "  -t\tto make NAMEs have the `trace' attribute"
+msgstr ""
+
+#: builtins.c:400
+msgid "  -x\tto make NAMEs export"
+msgstr ""
+
+#: builtins.c:402
+msgid "Variables with the integer attribute have arithmetic evaluation (see"
+msgstr ""
+
+#: builtins.c:403
+msgid "`let') done when the variable is assigned to."
+msgstr ""
+
+#: builtins.c:405
+msgid "When displaying values of variables, -f displays a function's name"
+msgstr ""
+
+#: builtins.c:406
+msgid "and definition.  The -F option restricts the display to function"
+msgstr ""
+
+#: builtins.c:407
+msgid "name only."
+msgstr ""
+
+#: builtins.c:409
+msgid "Using `+' instead of `-' turns off the given attribute instead.  When"
+msgstr ""
+
+#: builtins.c:410
+msgid "used in a function, makes NAMEs local, as with the `local' command."
+msgstr ""
+
+#: builtins.c:416
+msgid "Obsolete.  See `declare'."
+msgstr ""
+
+#: builtins.c:422
+msgid "Create a local variable called NAME, and give it VALUE.  LOCAL"
+msgstr ""
+
+#: builtins.c:423
+msgid "can only be used within a function; it makes the variable NAME"
+msgstr ""
+
+#: builtins.c:424
+msgid "have a visible scope restricted to that function and its children."
+msgstr ""
+
+#: builtins.c:431
+msgid "Output the ARGs.  If -n is specified, the trailing newline is"
+msgstr ""
+
+#: builtins.c:432
+msgid "suppressed.  If the -e option is given, interpretation of the"
+msgstr ""
+
+#: builtins.c:433
+msgid "following backslash-escaped characters is turned on:"
+msgstr ""
+
+#: builtins.c:434
+msgid "\t\\a\talert (bell)"
+msgstr ""
+
+#: builtins.c:435
+msgid "\t\\b\tbackspace"
+msgstr ""
+
+#: builtins.c:436
+msgid "\t\\c\tsuppress trailing newline"
+msgstr ""
+
+#: builtins.c:437
+msgid "\t\\E\tescape character"
+msgstr ""
+
+#: builtins.c:438
+msgid "\t\\f\tform feed"
+msgstr ""
+
+#: builtins.c:439
+msgid "\t\\n\tnew line"
+msgstr ""
+
+#: builtins.c:440
+msgid "\t\\r\tcarriage return"
+msgstr ""
+
+#: builtins.c:441
+msgid "\t\\t\thorizontal tab"
+msgstr ""
+
+#: builtins.c:442
+msgid "\t\\v\tvertical tab"
+msgstr ""
+
+#: builtins.c:443
+msgid "\t\\\\\tbackslash"
+msgstr ""
+
+#: builtins.c:444
+msgid "\t\\num\tthe character whose ASCII code is NUM (octal)."
+msgstr ""
+
+#: builtins.c:446
+msgid "You can explicitly turn off the interpretation of the above characters"
+msgstr ""
+
+#: builtins.c:447
+msgid "with the -E option."
+msgstr ""
+
+#: builtins.c:455
+msgid ""
+"Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+msgstr ""
+
+#: builtins.c:462
+msgid "Enable and disable builtin shell commands.  This allows"
+msgstr ""
+
+#: builtins.c:463
+msgid "you to use a disk command which has the same name as a shell"
+msgstr ""
+
+#: builtins.c:464
+msgid "builtin without specifying a full pathname.  If -n is used, the"
+msgstr ""
+
+#: builtins.c:465
+msgid "NAMEs become disabled; otherwise NAMEs are enabled.  For example,"
+msgstr ""
+
+#: builtins.c:466
+msgid "to use the `test' found in $PATH instead of the shell builtin"
+msgstr ""
+
+#: builtins.c:467
+msgid "version, type `enable -n test'.  On systems supporting dynamic"
+msgstr ""
+
+#: builtins.c:468
+msgid "loading, the -f option may be used to load new builtins from the"
+msgstr ""
+
+#: builtins.c:469
+msgid "shared object FILENAME.  The -d option will delete a builtin"
+msgstr ""
+
+#: builtins.c:470
+msgid "previously loaded with -f.  If no non-option names are given, or"
+msgstr ""
+
+#: builtins.c:471
+msgid "the -p option is supplied, a list of builtins is printed.  The"
+msgstr ""
+
+#: builtins.c:472
+msgid "-a option means to print every builtin with an indication of whether"
+msgstr ""
+
+#: builtins.c:473
+msgid ""
+"or not it is enabled.  The -s option restricts the output to the POSIX.2"
+msgstr ""
+
+#: builtins.c:474
+msgid ""
+"`special' builtins.  The -n option displays a list of all disabled builtins."
+msgstr ""
+
+#: builtins.c:480
+msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+msgstr ""
+
+#: builtins.c:486
+msgid "Getopts is used by shell procedures to parse positional parameters."
+msgstr ""
+
+#: builtins.c:488
+msgid "OPTSTRING contains the option letters to be recognized; if a letter"
+msgstr ""
+
+#: builtins.c:489
+msgid "is followed by a colon, the option is expected to have an argument,"
+msgstr ""
+
+#: builtins.c:490
+msgid "which should be separated from it by white space."
+msgstr ""
+
+#: builtins.c:492
+msgid "Each time it is invoked, getopts will place the next option in the"
+msgstr ""
+
+#: builtins.c:493
+msgid "shell variable $name, initializing name if it does not exist, and"
+msgstr ""
+
+#: builtins.c:494
+msgid "the index of the next argument to be processed into the shell"
+msgstr ""
+
+#: builtins.c:495
+msgid "variable OPTIND.  OPTIND is initialized to 1 each time the shell or"
+msgstr ""
+
+#: builtins.c:496
+msgid "a shell script is invoked.  When an option requires an argument,"
+msgstr ""
+
+#: builtins.c:497
+msgid "getopts places that argument into the shell variable OPTARG."
+msgstr ""
+
+#: builtins.c:499
+msgid "getopts reports errors in one of two ways.  If the first character"
+msgstr ""
+
+#: builtins.c:500
+msgid "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
+msgstr ""
+
+#: builtins.c:501
+msgid "this mode, no error messages are printed.  If an invalid option is"
+msgstr ""
+
+#: builtins.c:502
+msgid "seen, getopts places the option character found into OPTARG.  If a"
+msgstr ""
+
+#: builtins.c:503
+msgid "required argument is not found, getopts places a ':' into NAME and"
+msgstr ""
+
+#: builtins.c:504
+msgid "sets OPTARG to the option character found.  If getopts is not in"
+msgstr ""
+
+#: builtins.c:505
+msgid "silent mode, and an invalid option is seen, getopts places '?' into"
+msgstr ""
+
+#: builtins.c:506
+msgid "NAME and unsets OPTARG.  If a required argument is not found, a '?'"
+msgstr ""
+
+#: builtins.c:507
+msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is"
+msgstr ""
+
+#: builtins.c:508
+msgid "printed."
+msgstr ""
+
+#: builtins.c:510
+msgid "If the shell variable OPTERR has the value 0, getopts disables the"
+msgstr ""
+
+#: builtins.c:511
+msgid "printing of error messages, even if the first character of"
+msgstr ""
+
+#: builtins.c:512
+msgid "OPTSTRING is not a colon.  OPTERR has the value 1 by default."
+msgstr ""
+
+#: builtins.c:514
+msgid "Getopts normally parses the positional parameters ($0 - $9), but if"
+msgstr ""
+
+#: builtins.c:515
+msgid "more arguments are given, they are parsed instead."
+msgstr ""
+
+#: builtins.c:521
+msgid "Exec FILE, replacing this shell with the specified program."
+msgstr ""
+
+#: builtins.c:522
+msgid "If FILE is not specified, the redirections take effect in this"
+msgstr ""
+
+#: builtins.c:523
+msgid "shell.  If the first argument is `-l', then place a dash in the"
+msgstr ""
+
+#: builtins.c:524
+msgid "zeroth arg passed to FILE, as login does.  If the `-c' option"
+msgstr ""
+
+#: builtins.c:525
+msgid "is supplied, FILE is executed with a null environment.  The `-a'"
+msgstr ""
+
+#: builtins.c:526
+msgid "option means to make set argv[0] of the executed process to NAME."
+msgstr ""
+
+#: builtins.c:527
+msgid "If the file cannot be executed and the shell is not interactive,"
+msgstr ""
+
+#: builtins.c:528
+msgid "then the shell exits, unless the shell option `execfail' is set."
+msgstr ""
+
+#: builtins.c:534
+msgid "Exit the shell with a status of N.  If N is omitted, the exit status"
+msgstr ""
+
+#: builtins.c:535
+msgid "is that of the last command executed."
+msgstr ""
+
+#: builtins.c:541
+msgid "Logout of a login shell."
+msgstr ""
+
+#: builtins.c:548
+msgid ""
+"fc is used to list or edit and re-execute commands from the history list."
+msgstr ""
+
+#: builtins.c:549
+msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+msgstr ""
+
+#: builtins.c:550
+msgid "string, which means the most recent command beginning with that"
+msgstr ""
+
+#: builtins.c:551
+msgid "string."
+msgstr ""
+
+#: builtins.c:553
+msgid ""
+"   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+msgstr ""
+
+#: builtins.c:554
+msgid "      then vi."
+msgstr ""
+
+#: builtins.c:556
+msgid "   -l means list lines instead of editing."
+msgstr ""
+
+#: builtins.c:557
+msgid "   -n means no line numbers listed."
+msgstr ""
+
+#: builtins.c:558
+msgid ""
+"   -r means reverse the order of the lines (making it newest listed first)."
+msgstr ""
+
+#: builtins.c:560
+msgid "With the `fc -s [pat=rep ...] [command]' format, the command is"
+msgstr ""
+
+#: builtins.c:561
+msgid "re-executed after the substitution OLD=NEW is performed."
+msgstr ""
+
+#: builtins.c:563
+msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'"
+msgstr ""
+
+#: builtins.c:564
+msgid "runs the last command beginning with `cc' and typing `r' re-executes"
+msgstr ""
+
+#: builtins.c:565
+msgid "the last command."
+msgstr ""
+
+#: builtins.c:573
+msgid "Place JOB_SPEC in the foreground, and make it the current job.  If"
+msgstr ""
+
+#: builtins.c:574
+msgid "JOB_SPEC is not present, the shell's notion of the current job is"
+msgstr ""
+
+#: builtins.c:575
+msgid "used."
+msgstr ""
+
+#: builtins.c:583
+msgid "Place JOB_SPEC in the background, as if it had been started with"
+msgstr ""
+
+#: builtins.c:584
+msgid "`&'.  If JOB_SPEC is not present, the shell's notion of the current"
+msgstr ""
+
+#: builtins.c:585
+msgid "job is used."
+msgstr ""
+
+#: builtins.c:592
+msgid "For each NAME, the full pathname of the command is determined and"
+msgstr ""
+
+#: builtins.c:593
+msgid "remembered.  If the -p option is supplied, PATHNAME is used as the"
+msgstr ""
+
+#: builtins.c:594
+msgid "full pathname of NAME, and no path search is performed.  The -r"
+msgstr ""
+
+#: builtins.c:595
+msgid "option causes the shell to forget all remembered locations.  The -d"
+msgstr ""
+
+#: builtins.c:596
+msgid "option causes the shell to forget the remembered location of each NAME."
+msgstr ""
+
+#: builtins.c:597
+msgid "If the -t option is supplied the full pathname to which each NAME"
+msgstr ""
+
+#: builtins.c:598
+msgid "corresponds is printed.  If multiple NAME arguments are supplied with"
+msgstr ""
+
+#: builtins.c:599
+msgid "-t, the NAME is printed before the hashed full pathname.  The -l option"
+msgstr ""
+
+#: builtins.c:600
+msgid "causes output to be displayed in a format that may be reused as input."
+msgstr ""
+
+#: builtins.c:601
+msgid ""
+"If no arguments are given, information about remembered commands is "
+"displayed."
+msgstr ""
+
+#: builtins.c:608
+msgid "Display helpful information about builtin commands.  If PATTERN is"
+msgstr ""
+
+#: builtins.c:609
+msgid "specified, gives detailed help on all commands matching PATTERN,"
+msgstr ""
+
+#: builtins.c:610
+msgid "otherwise a list of the builtins is printed.  The -s option"
+msgstr ""
+
+#: builtins.c:611
+msgid "restricts the output for each builtin command matching PATTERN to"
+msgstr ""
+
+#: builtins.c:612
+msgid "a short usage synopsis."
+msgstr ""
+
+#: builtins.c:620
+msgid "Display the history list with line numbers.  Lines listed with"
+msgstr ""
+
+#: builtins.c:621
+msgid "with a `*' have been modified.  Argument of N says to list only"
+msgstr ""
+
+#: builtins.c:622
+msgid "the last N lines.  The `-c' option causes the history list to be"
+msgstr ""
+
+#: builtins.c:623
+msgid "cleared by deleting all of the entries.  The `-d' option deletes"
+msgstr ""
+
+#: builtins.c:624
+msgid "the history entry at offset OFFSET.  The `-w' option writes out the"
+msgstr ""
+
+#: builtins.c:625
+msgid "current history to the history file;  `-r' means to read the file and"
+msgstr ""
+
+#: builtins.c:626
+msgid "append the contents to the history list instead.  `-a' means"
+msgstr ""
+
+#: builtins.c:627
+msgid "to append history lines from this session to the history file."
+msgstr ""
+
+#: builtins.c:628
+msgid "Argument `-n' means to read all history lines not already read"
+msgstr ""
+
+#: builtins.c:629
+msgid "from the history file and append them to the history list."
+msgstr ""
+
+#: builtins.c:631
+msgid "If FILENAME is given, then that is used as the history file else"
+msgstr ""
+
+#: builtins.c:632
+msgid "if $HISTFILE has a value, that is used, else ~/.bash_history."
+msgstr ""
+
+#: builtins.c:633
+msgid "If the -s option is supplied, the non-option ARGs are appended to"
+msgstr ""
+
+#: builtins.c:634
+msgid "the history list as a single entry.  The -p option means to perform"
+msgstr ""
+
+#: builtins.c:635
+msgid "history expansion on each ARG and display the result, without storing"
+msgstr ""
+
+#: builtins.c:636
+msgid "anything in the history list."
+msgstr ""
+
+#: builtins.c:638
+msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used"
+msgstr ""
+
+#: builtins.c:639
+msgid "as a format string for strftime(3) to print the time stamp associated"
+msgstr ""
+
+#: builtins.c:640
+msgid ""
+"with each displayed history entry.  No time stamps are printed otherwise."
+msgstr ""
+
+#: builtins.c:648
+msgid "Lists the active jobs.  The -l option lists process id's in addition"
+msgstr ""
+
+#: builtins.c:649
+msgid "to the normal information; the -p option lists process id's only."
+msgstr ""
+
+#: builtins.c:650
+msgid "If -n is given, only processes that have changed status since the last"
+msgstr ""
+
+#: builtins.c:651
+msgid "notification are printed.  JOBSPEC restricts output to that job.  The"
+msgstr ""
+
+#: builtins.c:652
+msgid "-r and -s options restrict output to running and stopped jobs only,"
+msgstr ""
+
+#: builtins.c:653
+msgid "respectively.  Without options, the status of all active jobs is"
+msgstr ""
+
+#: builtins.c:654
+msgid "printed.  If -x is given, COMMAND is run after all job specifications"
+msgstr ""
+
+#: builtins.c:655
+msgid ""
+"that appear in ARGS have been replaced with the process ID of that job's"
+msgstr ""
+
+#: builtins.c:656
+msgid "process group leader."
+msgstr ""
+
+#: builtins.c:664
+msgid ""
+"By default, removes each JOBSPEC argument from the table of active jobs."
+msgstr ""
+
+#: builtins.c:665
+msgid ""
+"If the -h option is given, the job is not removed from the table, but is"
+msgstr ""
+
+#: builtins.c:666
+msgid "marked so that SIGHUP is not sent to the job if the shell receives a"
+msgstr ""
+
+#: builtins.c:667
+msgid ""
+"SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all"
+msgstr ""
+
+#: builtins.c:668
+msgid ""
+"jobs from the job table; the -r option means to remove only running jobs."
+msgstr ""
+
+#: builtins.c:675
+msgid "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
+msgstr ""
+
+#: builtins.c:676
+msgid "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
+msgstr ""
+
+#: builtins.c:677
+msgid "lists the signal names; if arguments follow `-l' they are assumed to"
+msgstr ""
+
+#: builtins.c:678
+msgid "be signal numbers for which names should be listed.  Kill is a shell"
+msgstr ""
+
+#: builtins.c:679
+msgid "builtin for two reasons: it allows job IDs to be used instead of"
+msgstr ""
+
+#: builtins.c:680
+msgid "process IDs, and, if you have reached the limit on processes that"
+msgstr ""
+
+#: builtins.c:681
+msgid "you can create, you don't have to start a process to kill another one."
+msgstr ""
+
+#: builtins.c:687
+msgid "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
+msgstr ""
+
+#: builtins.c:688
+msgid "is done in fixed-width integers with no check for overflow, though"
+msgstr ""
+
+#: builtins.c:689
+msgid "division by 0 is trapped and flagged as an error.  The following"
+msgstr ""
+
+#: builtins.c:690
+msgid "list of operators is grouped into levels of equal-precedence operators."
+msgstr ""
+
+#: builtins.c:691
+msgid "The levels are listed in order of decreasing precedence."
+msgstr ""
+
+#: builtins.c:693
+msgid "\tid++, id--\tvariable post-increment, post-decrement"
+msgstr ""
+
+#: builtins.c:694
+msgid "\t++id, --id\tvariable pre-increment, pre-decrement"
+msgstr ""
+
+#: builtins.c:695
+msgid "\t-, +\t\tunary minus, plus"
+msgstr ""
+
+#: builtins.c:696
+msgid "\t!, ~\t\tlogical and bitwise negation"
+msgstr ""
+
+#: builtins.c:697
+msgid "\t**\t\texponentiation"
+msgstr ""
+
+#: builtins.c:698
+msgid "\t*, /, %\t\tmultiplication, division, remainder"
+msgstr ""
+
+#: builtins.c:699
+msgid "\t+, -\t\taddition, subtraction"
+msgstr ""
+
+#: builtins.c:700
+msgid "\t<<, >>\t\tleft and right bitwise shifts"
+msgstr ""
+
+#: builtins.c:701
+msgid "\t<=, >=, <, >\tcomparison"
+msgstr ""
+
+#: builtins.c:702
+msgid "\t==, !=\t\tequality, inequality"
+msgstr ""
+
+#: builtins.c:703
+msgid "\t&\t\tbitwise AND"
+msgstr ""
+
+#: builtins.c:704
+msgid "\t^\t\tbitwise XOR"
+msgstr ""
+
+#: builtins.c:705
+msgid "\t|\t\tbitwise OR"
+msgstr ""
+
+#: builtins.c:706
+msgid "\t&&\t\tlogical AND"
+msgstr ""
+
+#: builtins.c:707
+msgid "\t||\t\tlogical OR"
+msgstr ""
+
+#: builtins.c:708
+msgid "\texpr ? expr : expr"
+msgstr ""
+
+#: builtins.c:709
+msgid "\t\t\tconditional operator"
+msgstr ""
+
+#: builtins.c:710
+msgid "\t=, *=, /=, %=,"
+msgstr ""
+
+#: builtins.c:711
+msgid "\t+=, -=, <<=, >>=,"
+msgstr ""
+
+#: builtins.c:712
+msgid "\t&=, ^=, |=\tassignment"
+msgstr ""
+
+#: builtins.c:714
+msgid "Shell variables are allowed as operands.  The name of the variable"
+msgstr ""
+
+#: builtins.c:715
+msgid "is replaced by its value (coerced to a fixed-width integer) within"
+msgstr ""
+
+#: builtins.c:716
+msgid "an expression.  The variable need not have its integer attribute"
+msgstr ""
+
+#: builtins.c:717
+msgid "turned on to be used in an expression."
+msgstr ""
+
+#: builtins.c:719
+msgid "Operators are evaluated in order of precedence.  Sub-expressions in"
+msgstr ""
+
+#: builtins.c:720
+msgid "parentheses are evaluated first and may override the precedence"
+msgstr ""
+
+#: builtins.c:721
+msgid "rules above."
+msgstr ""
+
+#: builtins.c:723
+msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned"
+msgstr ""
+
+#: builtins.c:724
+msgid "otherwise."
+msgstr ""
+
+#: builtins.c:730
+msgid ""
+"One line is read from the standard input, or from file descriptor FD if the"
+msgstr ""
+
+#: builtins.c:731
+msgid ""
+"-u option is supplied, and the first word is assigned to the first NAME,"
+msgstr ""
+
+#: builtins.c:732
+msgid ""
+"the second word to the second NAME, and so on, with leftover words assigned"
+msgstr ""
+
+#: builtins.c:733
+msgid ""
+"to the last NAME.  Only the characters found in $IFS are recognized as word"
+msgstr ""
+
+#: builtins.c:734
+msgid ""
+"delimiters.  If no NAMEs are supplied, the line read is stored in the REPLY"
+msgstr ""
+
+#: builtins.c:735
+msgid "variable.  If the -r option is given, this signifies `raw' input, and"
+msgstr ""
+
+#: builtins.c:736
+msgid "backslash escaping is disabled.  The -d option causes read to continue"
+msgstr ""
+
+#: builtins.c:737
+msgid ""
+"until the first character of DELIM is read, rather than newline.  If the -p"
+msgstr ""
+
+#: builtins.c:738
+msgid ""
+"option is supplied, the string PROMPT is output without a trailing newline"
+msgstr ""
+
+#: builtins.c:739
+msgid ""
+"before attempting to read.  If -a is supplied, the words read are assigned"
+msgstr ""
+
+#: builtins.c:740
+msgid ""
+"to sequential indices of ARRAY, starting at zero.  If -e is supplied and"
+msgstr ""
+
+#: builtins.c:741
+msgid ""
+"the shell is interactive, readline is used to obtain the line.  If -n is"
+msgstr ""
+
+#: builtins.c:742
+msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS"
+msgstr ""
+
+#: builtins.c:743
+msgid "characters have been read.  The -s option causes input coming from a"
+msgstr ""
+
+#: builtins.c:744
+msgid "terminal to not be echoed."
+msgstr ""
+
+#: builtins.c:746
+msgid ""
+"The -t option causes read to time out and return failure if a complete line"
+msgstr ""
+
+#: builtins.c:747
+msgid ""
+"of input is not read within TIMEOUT seconds.  If the TMOUT variable is set,"
+msgstr ""
+
+#: builtins.c:748
+msgid ""
+"its value is the default timeout.  The return code is zero, unless end-of-"
+"file"
+msgstr ""
+
+#: builtins.c:749
+msgid ""
+"is encountered, read times out, or an invalid file descriptor is supplied as"
+msgstr ""
+
+#: builtins.c:750
+msgid "the argument to -u."
+msgstr ""
+
+#: builtins.c:756
+msgid "Causes a function to exit with the return value specified by N.  If N"
+msgstr ""
+
+#: builtins.c:757
+msgid "is omitted, the return status is that of the last command."
+msgstr ""
+
+#: builtins.c:763
+msgid "    -a  Mark variables which are modified or created for export."
+msgstr ""
+
+#: builtins.c:764
+msgid "    -b  Notify of job termination immediately."
+msgstr ""
+
+#: builtins.c:765
+msgid "    -e  Exit immediately if a command exits with a non-zero status."
+msgstr ""
+
+#: builtins.c:766
+msgid "    -f  Disable file name generation (globbing)."
+msgstr ""
+
+#: builtins.c:767
+msgid "    -h  Remember the location of commands as they are looked up."
+msgstr ""
+
+#: builtins.c:768
+msgid "    -k  All assignment arguments are placed in the environment for a"
+msgstr ""
+
+#: builtins.c:769
+msgid "        command, not just those that precede the command name."
+msgstr ""
+
+#: builtins.c:770
+msgid "    -m  Job control is enabled."
+msgstr ""
+
+#: builtins.c:771
+msgid "    -n  Read commands but do not execute them."
+msgstr ""
+
+#: builtins.c:772
+msgid "    -o option-name"
+msgstr ""
+
+#: builtins.c:773
+msgid "        Set the variable corresponding to option-name:"
+msgstr ""
+
+#: builtins.c:774
+msgid "            allexport    same as -a"
+msgstr ""
+
+#: builtins.c:775
+msgid "            braceexpand  same as -B"
+msgstr ""
+
+#: builtins.c:777
+msgid "            emacs        use an emacs-style line editing interface"
+msgstr ""
+
+#: builtins.c:779
+msgid "            errexit      same as -e"
+msgstr ""
+
+#: builtins.c:780
+msgid "            errtrace     same as -E"
+msgstr ""
+
+#: builtins.c:781
+msgid "            functrace    same as -T"
+msgstr ""
+
+#: builtins.c:782
+msgid "            hashall      same as -h"
+msgstr ""
+
+#: builtins.c:784
+msgid "            histexpand   same as -H"
+msgstr ""
+
+#: builtins.c:787
+msgid "            history      enable command history"
+msgstr ""
+
+#: builtins.c:789
+msgid "            ignoreeof    the shell will not exit upon reading EOF"
+msgstr ""
+
+#: builtins.c:790
+msgid "            interactive-comments"
+msgstr ""
+
+#: builtins.c:791
+msgid ""
+"                         allow comments to appear in interactive commands"
+msgstr ""
+
+#: builtins.c:792
+msgid "            keyword      same as -k"
+msgstr ""
+
+#: builtins.c:793
+msgid "            monitor      same as -m"
+msgstr ""
+
+#: builtins.c:794
+msgid "            noclobber    same as -C"
+msgstr ""
+
+#: builtins.c:795
+msgid "            noexec       same as -n"
+msgstr ""
+
+#: builtins.c:796
+msgid "            noglob       same as -f"
+msgstr ""
+
+#: builtins.c:797
+msgid "            nolog        currently accepted but ignored"
+msgstr ""
+
+#: builtins.c:798
+msgid "            notify       same as -b"
+msgstr ""
+
+#: builtins.c:799
+msgid "            nounset      same as -u"
+msgstr ""
+
+#: builtins.c:800
+msgid "            onecmd       same as -t"
+msgstr ""
+
+#: builtins.c:801
+msgid "            physical     same as -P"
+msgstr ""
+
+#: builtins.c:802
+msgid ""
+"            pipefail     the return value of a pipeline is the status of"
+msgstr ""
+
+#: builtins.c:803
+msgid ""
+"                         the last command to exit with a non-zero status,"
+msgstr ""
+
+#: builtins.c:804
+msgid ""
+"                         or zero if no command exited with a non-zero status"
+msgstr ""
+
+#: builtins.c:805
+msgid "            posix        change the behavior of bash where the default"
+msgstr ""
+
+#: builtins.c:806
+msgid "                         operation differs from the 1003.2 standard to"
+msgstr ""
+
+#: builtins.c:807
+msgid "                         match the standard"
+msgstr ""
+
+#: builtins.c:808
+msgid "            privileged   same as -p"
+msgstr ""
+
+#: builtins.c:809
+msgid "            verbose      same as -v"
+msgstr ""
+
+#: builtins.c:811
+msgid "            vi           use a vi-style line editing interface"
+msgstr ""
+
+#: builtins.c:813
+msgid "            xtrace       same as -x"
+msgstr ""
+
+#: builtins.c:814
+msgid ""
+"    -p  Turned on whenever the real and effective user ids do not match."
+msgstr ""
+
+#: builtins.c:815
+msgid "        Disables processing of the $ENV file and importing of shell"
+msgstr ""
+
+#: builtins.c:816
+msgid ""
+"        functions.  Turning this option off causes the effective uid and"
+msgstr ""
+
+#: builtins.c:817
+msgid "        gid to be set to the real uid and gid."
+msgstr ""
+
+#: builtins.c:818
+msgid "    -t  Exit after reading and executing one command."
+msgstr ""
+
+#: builtins.c:819
+msgid "    -u  Treat unset variables as an error when substituting."
+msgstr ""
+
+#: builtins.c:820
+msgid "    -v  Print shell input lines as they are read."
+msgstr ""
+
+#: builtins.c:821
+msgid "    -x  Print commands and their arguments as they are executed."
+msgstr ""
+
+#: builtins.c:823
+msgid "    -B  the shell will perform brace expansion"
+msgstr ""
+
+#: builtins.c:825
+msgid "    -C  If set, disallow existing regular files to be overwritten"
+msgstr ""
+
+#: builtins.c:826
+msgid "        by redirection of output."
+msgstr ""
+
+#: builtins.c:827
+msgid "    -E  If set, the ERR trap is inherited by shell functions."
+msgstr ""
+
+#: builtins.c:829
+msgid "    -H  Enable ! style history substitution.  This flag is on"
+msgstr ""
+
+#: builtins.c:830
+msgid "        by default."
+msgstr ""
+
+#: builtins.c:832
+msgid "    -P  If set, do not follow symbolic links when executing commands"
+msgstr ""
+
+#: builtins.c:833
+msgid "        such as cd which change the current directory."
+msgstr ""
+
+#: builtins.c:834
+msgid "    -T  If set, the DEBUG trap is inherited by shell functions."
+msgstr ""
+
+#: builtins.c:836
+msgid "Using + rather than - causes these flags to be turned off.  The"
+msgstr ""
+
+#: builtins.c:837
+msgid "flags can also be used upon invocation of the shell.  The current"
+msgstr ""
+
+#: builtins.c:838
+msgid "set of flags may be found in $-.  The remaining n ARGs are positional"
+msgstr ""
+
+#: builtins.c:839
+msgid "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
+msgstr ""
+
+#: builtins.c:840
+msgid "ARGs are given, all shell variables are printed."
+msgstr ""
+
+#: builtins.c:846
+msgid "For each NAME, remove the corresponding variable or function.  Given"
+msgstr ""
+
+#: builtins.c:847
+msgid "the `-v', unset will only act on variables.  Given the `-f' flag,"
+msgstr ""
+
+#: builtins.c:848
+msgid "unset will only act on functions.  With neither flag, unset first"
+msgstr ""
+
+#: builtins.c:849
+msgid "tries to unset a variable, and if that fails, then tries to unset a"
+msgstr ""
+
+#: builtins.c:850
+msgid "function.  Some variables cannot be unset; also see readonly."
+msgstr ""
+
+#: builtins.c:856
+msgid "NAMEs are marked for automatic export to the environment of"
+msgstr ""
+
+#: builtins.c:857
+msgid "subsequently executed commands.  If the -f option is given,"
+msgstr ""
+
+#: builtins.c:858
+msgid "the NAMEs refer to functions.  If no NAMEs are given, or if `-p'"
+msgstr ""
+
+#: builtins.c:859
+msgid "is given, a list of all names that are exported in this shell is"
+msgstr ""
+
+#: builtins.c:860
+msgid "printed.  An argument of `-n' says to remove the export property"
+msgstr ""
+
+#: builtins.c:861
+msgid "from subsequent NAMEs.  An argument of `--' disables further option"
+msgstr ""
+
+#: builtins.c:862 builtins.c:874
+msgid "processing."
+msgstr ""
+
+#: builtins.c:868
+msgid "The given NAMEs are marked readonly and the values of these NAMEs may"
+msgstr ""
+
+#: builtins.c:869
+msgid "not be changed by subsequent assignment.  If the -f option is given,"
+msgstr ""
+
+#: builtins.c:870
+msgid "then functions corresponding to the NAMEs are so marked.  If no"
+msgstr ""
+
+#: builtins.c:871
+msgid "arguments are given, or if `-p' is given, a list of all readonly names"
+msgstr ""
+
+#: builtins.c:872
+msgid "is printed.  The `-a' option means to treat each NAME as"
+msgstr ""
+
+#: builtins.c:873
+msgid "an array variable.  An argument of `--' disables further option"
+msgstr ""
+
+#: builtins.c:880
+msgid "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+msgstr ""
+
+#: builtins.c:881
+msgid "not given, it is assumed to be 1."
+msgstr ""
+
+#: builtins.c:887 builtins.c:896
+msgid "Read and execute commands from FILENAME and return.  The pathnames"
+msgstr ""
+
+#: builtins.c:888 builtins.c:897
+msgid "in $PATH are used to find the directory containing FILENAME.  If any"
+msgstr ""
+
+#: builtins.c:889 builtins.c:898
+msgid "ARGUMENTS are supplied, they become the positional parameters when"
+msgstr ""
+
+#: builtins.c:890 builtins.c:899
+msgid "FILENAME is executed."
+msgstr ""
+
+#: builtins.c:906
+msgid "Suspend the execution of this shell until it receives a SIGCONT"
+msgstr ""
+
+#: builtins.c:907
+msgid "signal.  The `-f' if specified says not to complain about this"
+msgstr ""
+
+#: builtins.c:908
+msgid "being a login shell if it is; just suspend anyway."
+msgstr ""
+
+#: builtins.c:915
+msgid "Exits with a status of 0 (true) or 1 (false) depending on"
+msgstr ""
+
+#: builtins.c:916
+msgid "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
+msgstr ""
+
+#: builtins.c:917
+msgid "expressions are often used to examine the status of a file.  There"
+msgstr ""
+
+#: builtins.c:918
+msgid "are string operators as well, and numeric comparison operators."
+msgstr ""
+
+#: builtins.c:920
+msgid "File operators:"
+msgstr ""
+
+#: builtins.c:922
+msgid "    -a FILE        True if file exists."
+msgstr ""
+
+#: builtins.c:923
+msgid "    -b FILE        True if file is block special."
+msgstr ""
+
+#: builtins.c:924
+msgid "    -c FILE        True if file is character special."
+msgstr ""
+
+#: builtins.c:925
+msgid "    -d FILE        True if file is a directory."
+msgstr ""
+
+#: builtins.c:926
+msgid "    -e FILE        True if file exists."
+msgstr ""
+
+#: builtins.c:927
+msgid "    -f FILE        True if file exists and is a regular file."
+msgstr ""
+
+#: builtins.c:928
+msgid "    -g FILE        True if file is set-group-id."
+msgstr ""
+
+#: builtins.c:929
+msgid "    -h FILE        True if file is a symbolic link."
+msgstr ""
+
+#: builtins.c:930
+msgid "    -L FILE        True if file is a symbolic link."
+msgstr ""
+
+#: builtins.c:931
+msgid "    -k FILE        True if file has its `sticky' bit set."
+msgstr ""
+
+#: builtins.c:932
+msgid "    -p FILE        True if file is a named pipe."
+msgstr ""
+
+#: builtins.c:933
+msgid "    -r FILE        True if file is readable by you."
+msgstr ""
+
+#: builtins.c:934
+msgid "    -s FILE        True if file exists and is not empty."
+msgstr ""
+
+#: builtins.c:935
+msgid "    -S FILE        True if file is a socket."
+msgstr ""
+
+#: builtins.c:936
+msgid "    -t FD          True if FD is opened on a terminal."
+msgstr ""
+
+#: builtins.c:937
+msgid "    -u FILE        True if the file is set-user-id."
+msgstr ""
+
+#: builtins.c:938
+msgid "    -w FILE        True if the file is writable by you."
+msgstr ""
+
+#: builtins.c:939
+msgid "    -x FILE        True if the file is executable by you."
+msgstr ""
+
+#: builtins.c:940
+msgid "    -O FILE        True if the file is effectively owned by you."
+msgstr ""
+
+#: builtins.c:941
+msgid "    -G FILE        True if the file is effectively owned by your group."
+msgstr ""
+
+#: builtins.c:942
+msgid ""
+"    -N FILE        True if the file has been modified since it was last read."
+msgstr ""
+
+#: builtins.c:944
+msgid "  FILE1 -nt FILE2  True if file1 is newer than file2 (according to"
+msgstr ""
+
+#: builtins.c:945
+msgid "                   modification date)."
+msgstr ""
+
+#: builtins.c:947
+msgid "  FILE1 -ot FILE2  True if file1 is older than file2."
+msgstr ""
+
+#: builtins.c:949
+msgid "  FILE1 -ef FILE2  True if file1 is a hard link to file2."
+msgstr ""
+
+#: builtins.c:951
+msgid "String operators:"
+msgstr ""
+
+#: builtins.c:953
+msgid "    -z STRING      True if string is empty."
+msgstr ""
+
+#: builtins.c:955
+msgid "    -n STRING"
+msgstr ""
+
+#: builtins.c:956
+msgid "    STRING         True if string is not empty."
+msgstr ""
+
+#: builtins.c:958
+msgid "    STRING1 = STRING2"
+msgstr ""
+
+#: builtins.c:959
+msgid "                   True if the strings are equal."
+msgstr ""
+
+#: builtins.c:960
+msgid "    STRING1 != STRING2"
+msgstr ""
+
+#: builtins.c:961
+msgid "                   True if the strings are not equal."
+msgstr ""
+
+#: builtins.c:962
+msgid "    STRING1 < STRING2"
+msgstr ""
+
+#: builtins.c:963
+msgid ""
+"                   True if STRING1 sorts before STRING2 lexicographically."
+msgstr ""
+
+#: builtins.c:964
+msgid "    STRING1 > STRING2"
+msgstr ""
+
+#: builtins.c:965
+msgid ""
+"                   True if STRING1 sorts after STRING2 lexicographically."
+msgstr ""
+
+#: builtins.c:967
+msgid "Other operators:"
+msgstr ""
+
+#: builtins.c:969
+msgid "    -o OPTION      True if the shell option OPTION is enabled."
+msgstr ""
+
+#: builtins.c:970
+msgid "    ! EXPR         True if expr is false."
+msgstr ""
+
+#: builtins.c:971
+msgid "    EXPR1 -a EXPR2 True if both expr1 AND expr2 are true."
+msgstr ""
+
+#: builtins.c:972
+msgid "    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true."
+msgstr ""
+
+#: builtins.c:974
+msgid "    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,"
+msgstr ""
+
+#: builtins.c:975
+msgid "                   -lt, -le, -gt, or -ge."
+msgstr ""
+
+#: builtins.c:977
+msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
+msgstr ""
+
+#: builtins.c:978
+msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+msgstr ""
+
+#: builtins.c:979
+msgid "than ARG2."
+msgstr ""
+
+#: builtins.c:985
+msgid "This is a synonym for the \"test\" builtin, but the last"
+msgstr ""
+
+#: builtins.c:986
+msgid "argument must be a literal `]', to match the opening `['."
+msgstr ""
+
+#: builtins.c:992
+msgid "Print the accumulated user and system times for processes run from"
+msgstr ""
+
+#: builtins.c:993
+msgid "the shell."
+msgstr ""
+
+#: builtins.c:999
+msgid "The command ARG is to be read and executed when the shell receives"
+msgstr ""
+
+#: builtins.c:1000
+msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
+msgstr ""
+
+#: builtins.c:1001
+msgid "reset to their original values.  If ARG is the null string each"
+msgstr ""
+
+#: builtins.c:1002
+msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
+msgstr ""
+
+#: builtins.c:1003
+msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
+msgstr ""
+
+#: builtins.c:1004
+msgid "the shell.  If a SIGNAL_SPEC is DEBUG, ARG is executed after every"
+msgstr ""
+
+#: builtins.c:1005
+msgid "command.  If ARG is `-p' then the trap commands associated with"
+msgstr ""
+
+#: builtins.c:1006
+msgid "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
+msgstr ""
+
+#: builtins.c:1007
+msgid "only `-p' is given, trap prints the list of commands associated with"
+msgstr ""
+
+#: builtins.c:1008
+msgid ""
+"each signal number.  Each SIGNAL_SPEC is either a signal name in <signal.h>"
+msgstr ""
+
+#: builtins.c:1009
+msgid "or a signal number.  `trap -l' prints a list of signal names and their"
+msgstr ""
+
+#: builtins.c:1010
+msgid "corresponding numbers.  Note that a signal can be sent to the shell"
+msgstr ""
+
+#: builtins.c:1011
+msgid "with \"kill -signal $$\"."
+msgstr ""
+
+#: builtins.c:1017
+msgid "For each NAME, indicate how it would be interpreted if used as a"
+msgstr ""
+
+#: builtins.c:1018
+msgid "command name."
+msgstr ""
+
+#: builtins.c:1020
+msgid "If the -t option is used, `type' outputs a single word which is one of"
+msgstr ""
+
+#: builtins.c:1021
+msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+msgstr ""
+
+#: builtins.c:1022
+msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
+msgstr ""
+
+#: builtins.c:1023
+msgid "or unfound, respectively."
+msgstr ""
+
+#: builtins.c:1025
+msgid "If the -p flag is used, `type' either returns the name of the disk"
+msgstr ""
+
+#: builtins.c:1026
+msgid "file that would be executed, or nothing if `type -t NAME' would not"
+msgstr ""
+
+#: builtins.c:1027
+msgid "return `file'."
+msgstr ""
+
+#: builtins.c:1029
+msgid "If the -a flag is used, `type' displays all of the places that contain"
+msgstr ""
+
+#: builtins.c:1030
+msgid "an executable named `file'.  This includes aliases, builtins, and"
+msgstr ""
+
+#: builtins.c:1031
+msgid "functions, if and only if the -p flag is not also used."
+msgstr ""
+
+#: builtins.c:1033
+msgid "The -f flag suppresses shell function lookup."
+msgstr ""
+
+#: builtins.c:1035
+msgid "The -P flag forces a PATH search for each NAME, even if it is an alias,"
+msgstr ""
+
+#: builtins.c:1036
+msgid "builtin, or function, and returns the name of the disk file that would"
+msgstr ""
+
+#: builtins.c:1037
+msgid "be executed."
+msgstr ""
+
+#: builtins.c:1044
+msgid "Ulimit provides control over the resources available to processes"
+msgstr ""
+
+#: builtins.c:1045
+msgid "started by the shell, on systems that allow such control.  If an"
+msgstr ""
+
+#: builtins.c:1046
+msgid "option is given, it is interpreted as follows:"
+msgstr ""
+
+#: builtins.c:1048
+msgid "    -S\tuse the `soft' resource limit"
+msgstr ""
+
+#: builtins.c:1049
+msgid "    -H\tuse the `hard' resource limit"
+msgstr ""
+
+#: builtins.c:1050
+msgid "    -a\tall current limits are reported"
+msgstr ""
+
+#: builtins.c:1051
+msgid "    -c\tthe maximum size of core files created"
+msgstr ""
+
+#: builtins.c:1052
+msgid "    -d\tthe maximum size of a process's data segment"
+msgstr ""
+
+#: builtins.c:1053
+msgid "    -f\tthe maximum size of files created by the shell"
+msgstr ""
+
+#: builtins.c:1054
+msgid "    -l\tthe maximum size a process may lock into memory"
+msgstr ""
+
+#: builtins.c:1055
+msgid "    -m\tthe maximum resident set size"
+msgstr ""
+
+#: builtins.c:1056
+msgid "    -n\tthe maximum number of open file descriptors"
+msgstr ""
+
+#: builtins.c:1057
+msgid "    -p\tthe pipe buffer size"
+msgstr ""
+
+#: builtins.c:1058
+msgid "    -s\tthe maximum stack size"
+msgstr ""
+
+#: builtins.c:1059
+msgid "    -t\tthe maximum amount of cpu time in seconds"
+msgstr ""
+
+#: builtins.c:1060
+msgid "    -u\tthe maximum number of user processes"
+msgstr ""
+
+#: builtins.c:1061
+msgid "    -v\tthe size of virtual memory"
+msgstr ""
+
+#: builtins.c:1063
+msgid "If LIMIT is given, it is the new value of the specified resource;"
+msgstr ""
+
+#: builtins.c:1064
+msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for"
+msgstr ""
+
+#: builtins.c:1065
+msgid ""
+"the current soft limit, the current hard limit, and no limit, respectively."
+msgstr ""
+
+#: builtins.c:1066
+msgid "Otherwise, the current value of the specified resource is printed."
+msgstr ""
+
+#: builtins.c:1067
+msgid "If no option is given, then -f is assumed.  Values are in 1024-byte"
+msgstr ""
+
+#: builtins.c:1068
+msgid "increments, except for -t, which is in seconds, -p, which is in"
+msgstr ""
+
+#: builtins.c:1069
+msgid "increments of 512 bytes, and -u, which is an unscaled number of"
+msgstr ""
+
+#: builtins.c:1070
+msgid "processes."
+msgstr ""
+
+#: builtins.c:1077
+msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+msgstr ""
+
+#: builtins.c:1078
+msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+msgstr ""
+
+#: builtins.c:1079
+msgid "option makes the output symbolic; otherwise an octal number is output."
+msgstr ""
+
+#: builtins.c:1080
+msgid "If `-p' is supplied, and MODE is omitted, the output is in a form"
+msgstr ""
+
+#: builtins.c:1081
+msgid "that may be used as input.  If MODE begins with a digit, it is"
+msgstr ""
+
+#: builtins.c:1082
+msgid "interpreted as an octal number, otherwise it is a symbolic mode string"
+msgstr ""
+
+#: builtins.c:1083
+msgid "like that accepted by chmod(1)."
+msgstr ""
+
+#: builtins.c:1090 builtins.c:1102
+msgid "Wait for the specified process and report its termination status.  If"
+msgstr ""
+
+#: builtins.c:1091 builtins.c:1103
+msgid "N is not given, all currently active child processes are waited for,"
+msgstr ""
+
+#: builtins.c:1092
+msgid "and the return code is zero.  N may be a process ID or a job"
+msgstr ""
+
+#: builtins.c:1093
+msgid "specification; if a job spec is given, all processes in the job's"
+msgstr ""
+
+#: builtins.c:1094
+msgid "pipeline are waited for."
+msgstr ""
+
+#: builtins.c:1104
+msgid "and the return code is zero.  N is a process ID; if it is not given,"
+msgstr ""
+
+#: builtins.c:1105
+msgid "all child processes of the shell are waited for."
+msgstr ""
+
+#: builtins.c:1112
+msgid "The `for' loop executes a sequence of commands for each member in a"
+msgstr ""
+
+#: builtins.c:1113
+msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+msgstr ""
+
+#: builtins.c:1114
+msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
+msgstr ""
+
+#: builtins.c:1115
+msgid "the COMMANDS are executed."
+msgstr ""
+
+#: builtins.c:1121
+msgid "Equivalent to"
+msgstr ""
+
+#: builtins.c:1122
+msgid "\t(( EXP1 ))"
+msgstr ""
+
+#: builtins.c:1123
+msgid "\twhile (( EXP2 )); do"
+msgstr ""
+
+#: builtins.c:1124
+msgid "\t\tCOMMANDS"
+msgstr ""
+
+#: builtins.c:1125
+msgid "\t\t(( EXP3 ))"
+msgstr ""
+
+#: builtins.c:1126
+msgid "\tdone"
+msgstr ""
+
+#: builtins.c:1127
+msgid "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
+msgstr ""
+
+#: builtins.c:1128
+msgid "omitted, it behaves as if it evaluates to 1."
+msgstr ""
+
+#: builtins.c:1134
+msgid "The WORDS are expanded, generating a list of words.  The"
+msgstr ""
+
+#: builtins.c:1135
+msgid "set of expanded words is printed on the standard error, each"
+msgstr ""
+
+#: builtins.c:1136
+msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
+msgstr ""
+
+#: builtins.c:1137
+msgid "is assumed.  The PS3 prompt is then displayed and a line read"
+msgstr ""
+
+#: builtins.c:1138
+msgid "from the standard input.  If the line consists of the number"
+msgstr ""
+
+#: builtins.c:1139
+msgid "corresponding to one of the displayed words, then NAME is set"
+msgstr ""
+
+#: builtins.c:1140
+msgid "to that word.  If the line is empty, WORDS and the prompt are"
+msgstr ""
+
+#: builtins.c:1141
+msgid "redisplayed.  If EOF is read, the command completes.  Any other"
+msgstr ""
+
+#: builtins.c:1142
+msgid "value read causes NAME to be set to null.  The line read is saved"
+msgstr ""
+
+#: builtins.c:1143
+msgid "in the variable REPLY.  COMMANDS are executed after each selection"
+msgstr ""
+
+#: builtins.c:1144
+msgid "until a break command is executed."
+msgstr ""
+
+#: builtins.c:1150
+msgid "Execute PIPELINE and print a summary of the real time, user CPU time,"
+msgstr ""
+
+#: builtins.c:1151
+msgid "and system CPU time spent executing PIPELINE when it terminates."
+msgstr ""
+
+#: builtins.c:1152
+msgid "The return status is the return status of PIPELINE.  The `-p' option"
+msgstr ""
+
+#: builtins.c:1153
+msgid "prints the timing summary in a slightly different format.  This uses"
+msgstr ""
+
+#: builtins.c:1154
+msgid "the value of the TIMEFORMAT variable as the output format."
+msgstr ""
+
+#: builtins.c:1160
+msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
+msgstr ""
+
+#: builtins.c:1161
+msgid "`|' is used to separate multiple patterns."
+msgstr ""
+
+#: builtins.c:1167
+msgid ""
+"The if COMMANDS are executed.  If the exit status is zero, then the then"
+msgstr ""
+
+#: builtins.c:1168
+msgid ""
+"COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+msgstr ""
+
+#: builtins.c:1169
+msgid ""
+"in turn, and if the exit status is zero, the corresponding then COMMANDS"
+msgstr ""
+
+#: builtins.c:1170
+msgid ""
+"are executed and the if command completes.  Otherwise, the else COMMANDS"
+msgstr ""
+
+#: builtins.c:1171
+msgid ""
+"are executed, if present.  The exit status is the exit status of the last"
+msgstr ""
+
+#: builtins.c:1172
+msgid "command executed, or zero if no condition tested true."
+msgstr ""
+
+#: builtins.c:1178 builtins.c:1185
+msgid "Expand and execute COMMANDS as long as the final command in the"
+msgstr ""
+
+#: builtins.c:1179
+msgid "`while' COMMANDS has an exit status of zero."
+msgstr ""
+
+#: builtins.c:1186
+msgid "`until' COMMANDS has an exit status which is not zero."
+msgstr ""
+
+#: builtins.c:1192
+msgid "Create a simple command invoked by NAME which runs COMMANDS."
+msgstr ""
+
+#: builtins.c:1193
+msgid "Arguments on the command line along with NAME are passed to the"
+msgstr ""
+
+#: builtins.c:1194
+msgid "function as $0 .. $n."
+msgstr ""
+
+#: builtins.c:1200
+msgid "Run a set of commands in a group.  This is one way to redirect an"
+msgstr ""
+
+#: builtins.c:1201
+msgid "entire set of commands."
+msgstr ""
+
+#: builtins.c:1207
+msgid "This is similar to the `fg' command.  Resume a stopped or background"
+msgstr ""
+
+#: builtins.c:1208
+msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
+msgstr ""
+
+#: builtins.c:1209
+msgid "WORD, then the job whose name begins with WORD is used.  Following the"
+msgstr ""
+
+#: builtins.c:1210
+msgid "job specification with a `&' places the job in the background."
+msgstr ""
+
+#: builtins.c:1216
+msgid "The EXPRESSION is evaluated according to the rules for arithmetic"
+msgstr ""
+
+#: builtins.c:1217
+msgid "evaluation.  Equivalent to \"let EXPRESSION\"."
+msgstr ""
+
+#: builtins.c:1223
+msgid ""
+"Returns a status of 0 or 1 depending on the evaluation of the conditional"
+msgstr ""
+
+#: builtins.c:1224
+msgid ""
+"expression EXPRESSION.  Expressions are composed of the same primaries used"
+msgstr ""
+
+#: builtins.c:1225
+msgid ""
+"by the `test' builtin, and may be combined using the following operators"
+msgstr ""
+
+#: builtins.c:1227
+msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION"
+msgstr ""
+
+#: builtins.c:1228
+msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false"
+msgstr ""
+
+#: builtins.c:1229
+msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false"
+msgstr ""
+
+#: builtins.c:1230
+msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false"
+msgstr ""
+
+#: builtins.c:1232
+msgid ""
+"When the `==' and `!=' operators are used, the string to the right of the"
+msgstr ""
+
+#: builtins.c:1233
+msgid "operator is used as a pattern and pattern matching is performed.  The"
+msgstr ""
+
+#: builtins.c:1234
+msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to"
+msgstr ""
+
+#: builtins.c:1235
+msgid "determine the expression's value."
+msgstr ""
+
+#: builtins.c:1241
+msgid "BASH_VERSION    Version information for this Bash."
+msgstr ""
+
+#: builtins.c:1242
+msgid "CDPATH          A colon separated list of directories to search"
+msgstr ""
+
+#: builtins.c:1243
+msgid "\t\twhen the argument to `cd' is not found in the current"
+msgstr ""
+
+#: builtins.c:1244
+msgid "\t\tdirectory."
+msgstr ""
+
+#: builtins.c:1245
+msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
+msgstr ""
+
+#: builtins.c:1246
+msgid "\t\tbe ignored by pathname expansion."
+msgstr ""
+
+#: builtins.c:1248
+msgid ""
+"HISTFILE        The name of the file where your command history is stored."
+msgstr ""
+
+#: builtins.c:1249
+msgid "HISTFILESIZE    The maximum number of lines this file can contain."
+msgstr ""
+
+#: builtins.c:1250
+msgid "HISTSIZE        The maximum number of history lines that a running"
+msgstr ""
+
+#: builtins.c:1251
+msgid "\t\tshell can access."
+msgstr ""
+
+#: builtins.c:1253
+msgid "HOME            The complete pathname to your login directory."
+msgstr ""
+
+#: builtins.c:1254
+msgid "HOSTNAME\tThe name of the current host."
+msgstr ""
+
+#: builtins.c:1255
+msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
+msgstr ""
+
+#: builtins.c:1256
+msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+msgstr ""
+
+#: builtins.c:1257
+msgid "\t\tcharacter as the sole input.  If set, then the value"
+msgstr ""
+
+#: builtins.c:1258
+msgid "\t\tof it is the number of EOF characters that can be seen"
+msgstr ""
+
+#: builtins.c:1259
+msgid "\t\tin a row on an empty line before the shell will exit"
+msgstr ""
+
+#: builtins.c:1260
+msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
+msgstr ""
+
+#: builtins.c:1261
+msgid "MACHTYPE\tA string describing the current system Bash is running on."
+msgstr ""
+
+#: builtins.c:1262
+msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
+msgstr ""
+
+#: builtins.c:1263
+msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
+msgstr ""
+
+#: builtins.c:1264
+msgid "\t\tfor new mail."
+msgstr ""
+
+#: builtins.c:1265
+msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
+msgstr ""
+
+#: builtins.c:1266
+msgid "PATH            A colon-separated list of directories to search when"
+msgstr ""
+
+#: builtins.c:1267
+msgid "\t\tlooking for commands."
+msgstr ""
+
+#: builtins.c:1268
+msgid "PROMPT_COMMAND  A command to be executed before the printing of each"
+msgstr ""
+
+#: builtins.c:1269
+msgid "\t\tprimary prompt."
+msgstr ""
+
+#: builtins.c:1270
+msgid "PS1             The primary prompt string."
+msgstr ""
+
+#: builtins.c:1271
+msgid "PS2             The secondary prompt string."
+msgstr ""
+
+#: builtins.c:1272
+msgid "PWD\t\tThe full pathname of the current directory."
+msgstr ""
+
+#: builtins.c:1273
+msgid "SHELLOPTS\tA colon-separated list of enabled shell options."
+msgstr ""
+
+#: builtins.c:1274
+msgid "TERM            The name of the current terminal type."
+msgstr ""
+
+#: builtins.c:1275
+msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the"
+msgstr ""
+
+#: builtins.c:1276
+msgid "\t\t`time' reserved word."
+msgstr ""
+
+#: builtins.c:1277
+msgid "auto_resume     Non-null means a command word appearing on a line by"
+msgstr ""
+
+#: builtins.c:1278
+msgid "\t\titself is first looked for in the list of currently"
+msgstr ""
+
+#: builtins.c:1279
+msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
+msgstr ""
+
+#: builtins.c:1280
+msgid "\t\tA value of `exact' means that the command word must"
+msgstr ""
+
+#: builtins.c:1281
+msgid "\t\texactly match a command in the list of stopped jobs.  A"
+msgstr ""
+
+#: builtins.c:1282
+msgid "\t\tvalue of `substring' means that the command word must"
+msgstr ""
+
+#: builtins.c:1283
+msgid "\t\tmatch a substring of the job.  Any other value means that"
+msgstr ""
+
+#: builtins.c:1284
+msgid "\t\tthe command must be a prefix of a stopped job."
+msgstr ""
+
+#: builtins.c:1287
+msgid "histchars       Characters controlling history expansion and quick"
+msgstr ""
+
+#: builtins.c:1288
+msgid "\t\tsubstitution.  The first character is the history"
+msgstr ""
+
+#: builtins.c:1289
+msgid "\t\tsubstitution character, usually `!'.  The second is"
+msgstr ""
+
+#: builtins.c:1290
+msgid "\t\tthe `quick substitution' character, usually `^'.  The"
+msgstr ""
+
+#: builtins.c:1291
+msgid "\t\tthird is the `history comment' character, usually `#'."
+msgstr ""
+
+#: builtins.c:1293
+msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which"
+msgstr ""
+
+#: builtins.c:1294
+msgid "\t\tcommands should be saved on the history list."
+msgstr ""
+
+#: builtins.c:1306
+msgid "+N\tRotates the stack so that the Nth directory (counting"
+msgstr ""
+
+#: builtins.c:1307
+msgid "\tfrom the left of the list shown by `dirs', starting with"
+msgstr ""
+
+#: builtins.c:1308 builtins.c:1312
+msgid "\tzero) is at the top."
+msgstr ""
+
+#: builtins.c:1310
+msgid "-N\tRotates the stack so that the Nth directory (counting"
+msgstr ""
+
+#: builtins.c:1311
+msgid "\tfrom the right of the list shown by `dirs', starting with"
+msgstr ""
+
+#: builtins.c:1314
+msgid "-n\tsuppress the normal change of directory when adding directories"
+msgstr ""
+
+#: builtins.c:1315
+msgid "\tto the stack, so only the stack is manipulated."
+msgstr ""
+
+#: builtins.c:1317
+msgid "dir\tadds DIR to the directory stack at the top, making it the"
+msgstr ""
+
+#: builtins.c:1318
+msgid "\tnew current working directory."
+msgstr ""
+
+#: builtins.c:1332
+msgid "+N\tremoves the Nth entry counting from the left of the list"
+msgstr ""
+
+#: builtins.c:1333
+msgid "\tshown by `dirs', starting with zero.  For example: `popd +0'"
+msgstr ""
+
+#: builtins.c:1334
+msgid "\tremoves the first directory, `popd +1' the second."
+msgstr ""
+
+#: builtins.c:1336
+msgid "-N\tremoves the Nth entry counting from the right of the list"
+msgstr ""
+
+#: builtins.c:1337
+msgid "\tshown by `dirs', starting with zero.  For example: `popd -0'"
+msgstr ""
+
+#: builtins.c:1338
+msgid "\tremoves the last directory, `popd -1' the next to last."
+msgstr ""
+
+#: builtins.c:1340
+msgid "-n\tsuppress the normal change of directory when removing directories"
+msgstr ""
+
+#: builtins.c:1341
+msgid "\tfrom the stack, so only the stack is manipulated."
+msgstr ""
+
+#: builtins.c:1363
+msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
+msgstr ""
+
+#: builtins.c:1364 builtins.c:1367
+msgid "\tdirs when invoked without options, starting with zero."
+msgstr ""
+
+#: builtins.c:1366
+msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
+msgstr ""
+
+#: builtins.c:1374
+msgid "Toggle the values of variables controlling optional behavior."
+msgstr ""
+
+#: builtins.c:1375
+msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
+msgstr ""
+
+#: builtins.c:1376
+msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
+msgstr ""
+
+#: builtins.c:1377
+msgid "status indicates whether each OPTNAME is set or unset.  The -o"
+msgstr ""
+
+#: builtins.c:1378
+msgid "option restricts the OPTNAMEs to those defined for use with"
+msgstr ""
+
+#: builtins.c:1379
+msgid "`set -o'.  With no options, or with the -p option, a list of all"
+msgstr ""
+
+#: builtins.c:1380
+msgid "settable options is displayed, with an indication of whether or"
+msgstr ""
+
+#: builtins.c:1381
+msgid "not each is set."
+msgstr ""
+
+#: builtins.c:1387
+msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
+msgstr ""
+
+#: builtins.c:1388
+msgid "is a character string which contains three types of objects: plain"
+msgstr ""
+
+#: builtins.c:1389
+msgid ""
+"characters, which are simply copied to standard output, character escape"
+msgstr ""
+
+#: builtins.c:1390
+msgid "sequences which are converted and copied to the standard output, and"
+msgstr ""
+
+#: builtins.c:1391
+msgid ""
+"format specifications, each of which causes printing of the next successive"
+msgstr ""
+
+#: builtins.c:1392
+msgid "argument.  In addition to the standard printf(1) formats, %b means to"
+msgstr ""
+
+#: builtins.c:1393
+msgid "expand backslash escape sequences in the corresponding argument, and %q"
+msgstr ""
+
+#: builtins.c:1394
+msgid "means to quote the argument in a way that can be reused as shell input."
+msgstr ""
+
+#: builtins.c:1401
+msgid "For each NAME, specify how arguments are to be completed."
+msgstr ""
+
+#: builtins.c:1402
+msgid "If the -p option is supplied, or if no options are supplied, existing"
+msgstr ""
+
+#: builtins.c:1403
+msgid "completion specifications are printed in a way that allows them to be"
+msgstr ""
+
+#: builtins.c:1404
+msgid "reused as input.  The -r option removes a completion specification for"
+msgstr ""
+
+#: builtins.c:1405
+msgid "each NAME, or, if no NAMEs are supplied, all completion specifications."
+msgstr ""
+
+#: builtins.c:1413
+msgid "Display the possible completions depending on the options.  Intended"
+msgstr ""
+
+#: builtins.c:1414
+msgid ""
+"to be used from within a shell function generating possible completions."
+msgstr ""
+
+#: builtins.c:1415
+msgid "If the optional WORD argument is supplied, matches against WORD are"
+msgstr ""
+
+#: builtins.c:1416
+msgid "generated."
+msgstr ""
diff --git a/po.orig/boldquot.sed b/po.orig/boldquot.sed
new file mode 100644 (file)
index 0000000..4b937aa
--- /dev/null
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
+s/“/“\e[1m/g
+s/”/\e[0m”/g
+s/‘/‘\e[1m/g
+s/’/\e[0m’/g
diff --git a/po.orig/builtins.pot b/po.orig/builtins.pot
new file mode 100644 (file)
index 0000000..e30179c
--- /dev/null
@@ -0,0 +1,2845 @@
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:244
+msgid "`alias' with no arguments or with the -p option prints the list"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:245
+msgid "of aliases in the form alias NAME=VALUE on standard output."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:246
+msgid "Otherwise, an alias is defined for each NAME whose VALUE is given."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:247
+msgid "A trailing space in VALUE causes the next word to be checked for"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:248
+msgid "alias substitution when the alias is expanded.  Alias returns"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:249
+msgid "true unless a NAME is given for which no alias has been defined."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:257
+msgid ""
+"Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:258
+msgid "then remove all alias definitions."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:266
+msgid "Bind a key sequence to a Readline function or a macro, or set"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:267
+msgid "a Readline variable.  The non-option argument syntax is equivalent"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:268
+msgid "to that found in ~/.inputrc, but must be passed as a single argument:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:269
+msgid "bind '\"\\C-x\\C-r\": re-read-init-file'."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:270
+msgid "bind accepts the following options:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:271
+msgid ""
+"  -m  keymap         Use `keymap' as the keymap for the duration of this"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:272
+msgid "                     command.  Acceptable keymap names are emacs,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:273
+msgid ""
+"                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:274
+msgid "                     vi-command, and vi-insert."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:275
+msgid "  -l                 List names of functions."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:276
+msgid "  -P                 List function names and bindings."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:277
+msgid "  -p                 List functions and bindings in a form that can be"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:278
+msgid "                     reused as input."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:279
+msgid "  -r  keyseq         Remove the binding for KEYSEQ."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:280
+msgid "  -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:281
+msgid "\t\t\t\tKEYSEQ is entered."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:282
+msgid "  -f  filename       Read key bindings from FILENAME."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:283
+msgid "  -q  function-name  Query about which keys invoke the named function."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:284
+msgid ""
+"  -u  function-name  Unbind all keys which are bound to the named function."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:285
+msgid "  -V                 List variable names and values"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:286
+msgid "  -v                 List variable names and values in a form that can"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:287
+msgid "                     be reused as input."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:288
+msgid ""
+"  -S                 List key sequences that invoke macros and their values"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:289
+msgid ""
+"  -s                 List key sequences that invoke macros and their values"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:290
+msgid "                     in a form that can be reused as input."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:297
+msgid "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:298
+msgid "break N levels."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:304
+msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:305
+msgid "If N is specified, resume at the N-th enclosing loop."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:311
+msgid "Run a shell builtin.  This is useful when you wish to rename a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:312
+msgid "shell builtin to be a function, but need the functionality of the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:313
+msgid "builtin within the function itself."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:320
+msgid "Returns the context of the current subroutine call."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:321
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:325
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:390
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:392
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:401
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:404
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:408
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:445
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:487
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:491
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:498
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:509
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:513
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:552
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:555
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:559
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:562
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:630
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:637
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:692
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:713
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:718
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:722
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:745
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:835
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:919
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:921
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:943
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:946
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:948
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:950
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:952
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:954
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:957
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:966
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:968
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:973
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:976
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1019
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1024
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1028
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1032
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1034
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1047
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1062
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1226
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1231
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1305
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1309
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1313
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1316
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1319
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1331
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1335
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1339
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1342
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1354
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1362
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1365
+msgid ""
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:322
+msgid "Without EXPR, returns returns \"$line $filename\".  With EXPR,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:323
+msgid "returns \"$line $subroutine $filename\"; this extra information"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:324
+msgid "can be used used to provide a stack trace."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:326
+msgid "The value of EXPR indicates how many call frames to go back before the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:327
+msgid "current one; the top frame is frame 0."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:334
+msgid "Change the current directory to DIR.  The variable $HOME is the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:335
+msgid "default DIR.  The variable CDPATH defines the search path for"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:336
+msgid "the directory containing DIR.  Alternative directory names in CDPATH"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:337
+msgid "are separated by a colon (:).  A null directory name is the same as"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:338
+msgid "the current directory, i.e. `.'.  If DIR begins with a slash (/),"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:339
+msgid "then CDPATH is not used.  If the directory is not found, and the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:340
+msgid "shell option `cdable_vars' is set, then try the word as a variable"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:341
+msgid "name.  If that variable has a value, then cd to the value of that"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:342
+msgid "variable.  The -P option says to use the physical directory structure"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:343
+msgid ""
+"instead of following symbolic links; the -L option forces symbolic links"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:344
+msgid "to be followed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:350
+msgid "Print the current working directory.  With the -P option, pwd prints"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:351
+msgid "the physical directory, without any symbolic links; the -L option"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:352
+msgid "makes pwd follow symbolic links."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:358
+msgid "No effect; the command does nothing.  A zero exit code is returned."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:364
+msgid "Return a successful result."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:370
+msgid "Return an unsuccessful result."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:376
+msgid "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:377
+msgid "function called `ls', and you wish to call the command `ls', you can"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:378
+msgid "say \"command ls\".  If the -p option is given, a default value is used"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:379
+msgid "for PATH that is guaranteed to find all of the standard utilities.  If"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:380
+msgid "the -V or -v option is given, a string is printed describing COMMAND."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:381
+msgid "The -V option produces a more verbose description."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:387
+msgid "Declare variables and/or give them attributes.  If no NAMEs are"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:388
+msgid "given, then display the values of variables instead.  The -p option"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:389
+msgid "will display the attributes and values of each NAME."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:391
+msgid "The flags are:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:393
+msgid "  -a\tto make NAMEs arrays (if supported)"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:394
+msgid "  -f\tto select from among function names only"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:395
+msgid ""
+"  -F\tto display function names (and line number and source file name if"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:396
+msgid "\tdebugging) without definitions"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:397
+msgid "  -i\tto make NAMEs have the `integer' attribute"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:398
+msgid "  -r\tto make NAMEs readonly"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:399
+msgid "  -t\tto make NAMEs have the `trace' attribute"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:400
+msgid "  -x\tto make NAMEs export"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:402
+msgid "Variables with the integer attribute have arithmetic evaluation (see"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:403
+msgid "`let') done when the variable is assigned to."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:405
+msgid "When displaying values of variables, -f displays a function's name"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:406
+msgid "and definition.  The -F option restricts the display to function"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:407
+msgid "name only."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:409
+msgid "Using `+' instead of `-' turns off the given attribute instead.  When"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:410
+msgid "used in a function, makes NAMEs local, as with the `local' command."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:416
+msgid "Obsolete.  See `declare'."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:422
+msgid "Create a local variable called NAME, and give it VALUE.  LOCAL"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:423
+msgid "can only be used within a function; it makes the variable NAME"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:424
+msgid "have a visible scope restricted to that function and its children."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:431
+msgid "Output the ARGs.  If -n is specified, the trailing newline is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:432
+msgid "suppressed.  If the -e option is given, interpretation of the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:433
+msgid "following backslash-escaped characters is turned on:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:434
+msgid "\t\\a\talert (bell)"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:435
+msgid "\t\\b\tbackspace"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:436
+msgid "\t\\c\tsuppress trailing newline"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:437
+msgid "\t\\E\tescape character"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:438
+msgid "\t\\f\tform feed"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:439
+msgid "\t\\n\tnew line"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:440
+msgid "\t\\r\tcarriage return"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:441
+msgid "\t\\t\thorizontal tab"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:442
+msgid "\t\\v\tvertical tab"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:443
+msgid "\t\\\\\tbackslash"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:444
+msgid "\t\\num\tthe character whose ASCII code is NUM (octal)."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:446
+msgid "You can explicitly turn off the interpretation of the above characters"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:447
+msgid "with the -E option."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:455
+msgid ""
+"Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:462
+msgid "Enable and disable builtin shell commands.  This allows"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:463
+msgid "you to use a disk command which has the same name as a shell"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:464
+msgid "builtin without specifying a full pathname.  If -n is used, the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:465
+msgid "NAMEs become disabled; otherwise NAMEs are enabled.  For example,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:466
+msgid "to use the `test' found in $PATH instead of the shell builtin"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:467
+msgid "version, type `enable -n test'.  On systems supporting dynamic"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:468
+msgid "loading, the -f option may be used to load new builtins from the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:469
+msgid "shared object FILENAME.  The -d option will delete a builtin"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:470
+msgid "previously loaded with -f.  If no non-option names are given, or"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:471
+msgid "the -p option is supplied, a list of builtins is printed.  The"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:472
+msgid "-a option means to print every builtin with an indication of whether"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:473
+msgid ""
+"or not it is enabled.  The -s option restricts the output to the POSIX.2"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:474
+msgid ""
+"`special' builtins.  The -n option displays a list of all disabled builtins."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:480
+msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:486
+msgid "Getopts is used by shell procedures to parse positional parameters."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:488
+msgid "OPTSTRING contains the option letters to be recognized; if a letter"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:489
+msgid "is followed by a colon, the option is expected to have an argument,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:490
+msgid "which should be separated from it by white space."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:492
+msgid "Each time it is invoked, getopts will place the next option in the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:493
+msgid "shell variable $name, initializing name if it does not exist, and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:494
+msgid "the index of the next argument to be processed into the shell"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:495
+msgid "variable OPTIND.  OPTIND is initialized to 1 each time the shell or"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:496
+msgid "a shell script is invoked.  When an option requires an argument,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:497
+msgid "getopts places that argument into the shell variable OPTARG."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:499
+msgid "getopts reports errors in one of two ways.  If the first character"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:500
+msgid "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:501
+msgid "this mode, no error messages are printed.  If an invalid option is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:502
+msgid "seen, getopts places the option character found into OPTARG.  If a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:503
+msgid "required argument is not found, getopts places a ':' into NAME and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:504
+msgid "sets OPTARG to the option character found.  If getopts is not in"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:505
+msgid "silent mode, and an invalid option is seen, getopts places '?' into"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:506
+msgid "NAME and unsets OPTARG.  If a required argument is not found, a '?'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:507
+msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:508
+msgid "printed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:510
+msgid "If the shell variable OPTERR has the value 0, getopts disables the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:511
+msgid "printing of error messages, even if the first character of"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:512
+msgid "OPTSTRING is not a colon.  OPTERR has the value 1 by default."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:514
+msgid "Getopts normally parses the positional parameters ($0 - $9), but if"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:515
+msgid "more arguments are given, they are parsed instead."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:521
+msgid "Exec FILE, replacing this shell with the specified program."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:522
+msgid "If FILE is not specified, the redirections take effect in this"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:523
+msgid "shell.  If the first argument is `-l', then place a dash in the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:524
+msgid "zeroth arg passed to FILE, as login does.  If the `-c' option"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:525
+msgid "is supplied, FILE is executed with a null environment.  The `-a'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:526
+msgid "option means to make set argv[0] of the executed process to NAME."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:527
+msgid "If the file cannot be executed and the shell is not interactive,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:528
+msgid "then the shell exits, unless the shell option `execfail' is set."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:534
+msgid "Exit the shell with a status of N.  If N is omitted, the exit status"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:535
+msgid "is that of the last command executed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:541
+msgid "Logout of a login shell."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:548
+msgid ""
+"fc is used to list or edit and re-execute commands from the history list."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:549
+msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:550
+msgid "string, which means the most recent command beginning with that"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:551
+msgid "string."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:553
+msgid ""
+"   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:554
+msgid "      then vi."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:556
+msgid "   -l means list lines instead of editing."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:557
+msgid "   -n means no line numbers listed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:558
+msgid ""
+"   -r means reverse the order of the lines (making it newest listed first)."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:560
+msgid "With the `fc -s [pat=rep ...] [command]' format, the command is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:561
+msgid "re-executed after the substitution OLD=NEW is performed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:563
+msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:564
+msgid "runs the last command beginning with `cc' and typing `r' re-executes"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:565
+msgid "the last command."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:573
+msgid "Place JOB_SPEC in the foreground, and make it the current job.  If"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:574
+msgid "JOB_SPEC is not present, the shell's notion of the current job is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:575
+msgid "used."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:583
+msgid "Place JOB_SPEC in the background, as if it had been started with"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:584
+msgid "`&'.  If JOB_SPEC is not present, the shell's notion of the current"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:585
+msgid "job is used."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:592
+msgid "For each NAME, the full pathname of the command is determined and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:593
+msgid "remembered.  If the -p option is supplied, PATHNAME is used as the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:594
+msgid "full pathname of NAME, and no path search is performed.  The -r"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:595
+msgid "option causes the shell to forget all remembered locations.  The -d"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:596
+msgid "option causes the shell to forget the remembered location of each NAME."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:597
+msgid "If the -t option is supplied the full pathname to which each NAME"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:598
+msgid "corresponds is printed.  If multiple NAME arguments are supplied with"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:599
+msgid "-t, the NAME is printed before the hashed full pathname.  The -l option"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:600
+msgid "causes output to be displayed in a format that may be reused as input."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:601
+msgid ""
+"If no arguments are given, information about remembered commands is "
+"displayed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:608
+msgid "Display helpful information about builtin commands.  If PATTERN is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:609
+msgid "specified, gives detailed help on all commands matching PATTERN,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:610
+msgid "otherwise a list of the builtins is printed.  The -s option"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:611
+msgid "restricts the output for each builtin command matching PATTERN to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:612
+msgid "a short usage synopsis."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:620
+msgid "Display the history list with line numbers.  Lines listed with"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:621
+msgid "with a `*' have been modified.  Argument of N says to list only"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:622
+msgid "the last N lines.  The `-c' option causes the history list to be"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:623
+msgid "cleared by deleting all of the entries.  The `-d' option deletes"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:624
+msgid "the history entry at offset OFFSET.  The `-w' option writes out the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:625
+msgid "current history to the history file;  `-r' means to read the file and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:626
+msgid "append the contents to the history list instead.  `-a' means"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:627
+msgid "to append history lines from this session to the history file."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:628
+msgid "Argument `-n' means to read all history lines not already read"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:629
+msgid "from the history file and append them to the history list."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:631
+msgid "If FILENAME is given, then that is used as the history file else"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:632
+msgid "if $HISTFILE has a value, that is used, else ~/.bash_history."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:633
+msgid "If the -s option is supplied, the non-option ARGs are appended to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:634
+msgid "the history list as a single entry.  The -p option means to perform"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:635
+msgid "history expansion on each ARG and display the result, without storing"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:636
+msgid "anything in the history list."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:638
+msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:639
+msgid "as a format string for strftime(3) to print the time stamp associated"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:640
+msgid ""
+"with each displayed history entry.  No time stamps are printed otherwise."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:648
+msgid "Lists the active jobs.  The -l option lists process id's in addition"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:649
+msgid "to the normal information; the -p option lists process id's only."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:650
+msgid "If -n is given, only processes that have changed status since the last"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:651
+msgid "notification are printed.  JOBSPEC restricts output to that job.  The"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:652
+msgid "-r and -s options restrict output to running and stopped jobs only,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:653
+msgid "respectively.  Without options, the status of all active jobs is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:654
+msgid "printed.  If -x is given, COMMAND is run after all job specifications"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:655
+msgid ""
+"that appear in ARGS have been replaced with the process ID of that job's"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:656
+msgid "process group leader."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:664
+msgid ""
+"By default, removes each JOBSPEC argument from the table of active jobs."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:665
+msgid ""
+"If the -h option is given, the job is not removed from the table, but is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:666
+msgid "marked so that SIGHUP is not sent to the job if the shell receives a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:667
+msgid ""
+"SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:668
+msgid ""
+"jobs from the job table; the -r option means to remove only running jobs."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:675
+msgid "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:676
+msgid "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:677
+msgid "lists the signal names; if arguments follow `-l' they are assumed to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:678
+msgid "be signal numbers for which names should be listed.  Kill is a shell"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:679
+msgid "builtin for two reasons: it allows job IDs to be used instead of"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:680
+msgid "process IDs, and, if you have reached the limit on processes that"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:681
+msgid "you can create, you don't have to start a process to kill another one."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:687
+msgid "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:688
+msgid "is done in fixed-width integers with no check for overflow, though"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:689
+msgid "division by 0 is trapped and flagged as an error.  The following"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:690
+msgid "list of operators is grouped into levels of equal-precedence operators."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:691
+msgid "The levels are listed in order of decreasing precedence."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:693
+msgid "\tid++, id--\tvariable post-increment, post-decrement"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:694
+msgid "\t++id, --id\tvariable pre-increment, pre-decrement"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:695
+msgid "\t-, +\t\tunary minus, plus"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:696
+msgid "\t!, ~\t\tlogical and bitwise negation"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:697
+msgid "\t**\t\texponentiation"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:698
+msgid "\t*, /, %\t\tmultiplication, division, remainder"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:699
+msgid "\t+, -\t\taddition, subtraction"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:700
+msgid "\t<<, >>\t\tleft and right bitwise shifts"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:701
+msgid "\t<=, >=, <, >\tcomparison"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:702
+msgid "\t==, !=\t\tequality, inequality"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:703
+msgid "\t&\t\tbitwise AND"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:704
+msgid "\t^\t\tbitwise XOR"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:705
+msgid "\t|\t\tbitwise OR"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:706
+msgid "\t&&\t\tlogical AND"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:707
+msgid "\t||\t\tlogical OR"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:708
+msgid "\texpr ? expr : expr"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:709
+msgid "\t\t\tconditional operator"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:710
+msgid "\t=, *=, /=, %=,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:711
+msgid "\t+=, -=, <<=, >>=,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:712
+msgid "\t&=, ^=, |=\tassignment"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:714
+msgid "Shell variables are allowed as operands.  The name of the variable"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:715
+msgid "is replaced by its value (coerced to a fixed-width integer) within"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:716
+msgid "an expression.  The variable need not have its integer attribute"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:717
+msgid "turned on to be used in an expression."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:719
+msgid "Operators are evaluated in order of precedence.  Sub-expressions in"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:720
+msgid "parentheses are evaluated first and may override the precedence"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:721
+msgid "rules above."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:723
+msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:724
+msgid "otherwise."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:730
+msgid ""
+"One line is read from the standard input, or from file descriptor FD if the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:731
+msgid ""
+"-u option is supplied, and the first word is assigned to the first NAME,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:732
+msgid ""
+"the second word to the second NAME, and so on, with leftover words assigned"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:733
+msgid ""
+"to the last NAME.  Only the characters found in $IFS are recognized as word"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:734
+msgid ""
+"delimiters.  If no NAMEs are supplied, the line read is stored in the REPLY"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:735
+msgid "variable.  If the -r option is given, this signifies `raw' input, and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:736
+msgid "backslash escaping is disabled.  The -d option causes read to continue"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:737
+msgid ""
+"until the first character of DELIM is read, rather than newline.  If the -p"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:738
+msgid ""
+"option is supplied, the string PROMPT is output without a trailing newline"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:739
+msgid ""
+"before attempting to read.  If -a is supplied, the words read are assigned"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:740
+msgid ""
+"to sequential indices of ARRAY, starting at zero.  If -e is supplied and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:741
+msgid ""
+"the shell is interactive, readline is used to obtain the line.  If -n is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:742
+msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:743
+msgid "characters have been read.  The -s option causes input coming from a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:744
+msgid "terminal to not be echoed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:746
+msgid ""
+"The -t option causes read to time out and return failure if a complete line"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:747
+msgid ""
+"of input is not read within TIMEOUT seconds.  If the TMOUT variable is set,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:748
+msgid ""
+"its value is the default timeout.  The return code is zero, unless end-of-"
+"file"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:749
+msgid ""
+"is encountered, read times out, or an invalid file descriptor is supplied as"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:750
+msgid "the argument to -u."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:756
+msgid "Causes a function to exit with the return value specified by N.  If N"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:757
+msgid "is omitted, the return status is that of the last command."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:763
+msgid "    -a  Mark variables which are modified or created for export."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:764
+msgid "    -b  Notify of job termination immediately."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:765
+msgid "    -e  Exit immediately if a command exits with a non-zero status."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:766
+msgid "    -f  Disable file name generation (globbing)."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:767
+msgid "    -h  Remember the location of commands as they are looked up."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:768
+msgid "    -k  All assignment arguments are placed in the environment for a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:769
+msgid "        command, not just those that precede the command name."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:770
+msgid "    -m  Job control is enabled."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:771
+msgid "    -n  Read commands but do not execute them."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:772
+msgid "    -o option-name"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:773
+msgid "        Set the variable corresponding to option-name:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:774
+msgid "            allexport    same as -a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:775
+msgid "            braceexpand  same as -B"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:777
+msgid "            emacs        use an emacs-style line editing interface"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:779
+msgid "            errexit      same as -e"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:780
+msgid "            errtrace     same as -E"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:781
+msgid "            functrace    same as -T"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:782
+msgid "            hashall      same as -h"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:784
+msgid "            histexpand   same as -H"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:787
+msgid "            history      enable command history"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:789
+msgid "            ignoreeof    the shell will not exit upon reading EOF"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:790
+msgid "            interactive-comments"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:791
+msgid ""
+"                         allow comments to appear in interactive commands"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:792
+msgid "            keyword      same as -k"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:793
+msgid "            monitor      same as -m"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:794
+msgid "            noclobber    same as -C"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:795
+msgid "            noexec       same as -n"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:796
+msgid "            noglob       same as -f"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:797
+msgid "            nolog        currently accepted but ignored"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:798
+msgid "            notify       same as -b"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:799
+msgid "            nounset      same as -u"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:800
+msgid "            onecmd       same as -t"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:801
+msgid "            physical     same as -P"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:802
+msgid ""
+"            pipefail     the return value of a pipeline is the status of"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:803
+msgid ""
+"                         the last command to exit with a non-zero status,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:804
+msgid ""
+"                         or zero if no command exited with a non-zero status"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:805
+msgid "            posix        change the behavior of bash where the default"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:806
+msgid "                         operation differs from the 1003.2 standard to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:807
+msgid "                         match the standard"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:808
+msgid "            privileged   same as -p"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:809
+msgid "            verbose      same as -v"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:811
+msgid "            vi           use a vi-style line editing interface"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:813
+msgid "            xtrace       same as -x"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:814
+msgid ""
+"    -p  Turned on whenever the real and effective user ids do not match."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:815
+msgid "        Disables processing of the $ENV file and importing of shell"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:816
+msgid ""
+"        functions.  Turning this option off causes the effective uid and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:817
+msgid "        gid to be set to the real uid and gid."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:818
+msgid "    -t  Exit after reading and executing one command."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:819
+msgid "    -u  Treat unset variables as an error when substituting."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:820
+msgid "    -v  Print shell input lines as they are read."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:821
+msgid "    -x  Print commands and their arguments as they are executed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:823
+msgid "    -B  the shell will perform brace expansion"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:825
+msgid "    -C  If set, disallow existing regular files to be overwritten"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:826
+msgid "        by redirection of output."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:827
+msgid "    -E  If set, the ERR trap is inherited by shell functions."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:829
+msgid "    -H  Enable ! style history substitution.  This flag is on"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:830
+msgid "        by default."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:832
+msgid "    -P  If set, do not follow symbolic links when executing commands"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:833
+msgid "        such as cd which change the current directory."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:834
+msgid "    -T  If set, the DEBUG trap is inherited by shell functions."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:836
+msgid "Using + rather than - causes these flags to be turned off.  The"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:837
+msgid "flags can also be used upon invocation of the shell.  The current"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:838
+msgid "set of flags may be found in $-.  The remaining n ARGs are positional"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:839
+msgid "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:840
+msgid "ARGs are given, all shell variables are printed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:846
+msgid "For each NAME, remove the corresponding variable or function.  Given"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:847
+msgid "the `-v', unset will only act on variables.  Given the `-f' flag,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:848
+msgid "unset will only act on functions.  With neither flag, unset first"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:849
+msgid "tries to unset a variable, and if that fails, then tries to unset a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:850
+msgid "function.  Some variables cannot be unset; also see readonly."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:856
+msgid "NAMEs are marked for automatic export to the environment of"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:857
+msgid "subsequently executed commands.  If the -f option is given,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:858
+msgid "the NAMEs refer to functions.  If no NAMEs are given, or if `-p'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:859
+msgid "is given, a list of all names that are exported in this shell is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:860
+msgid "printed.  An argument of `-n' says to remove the export property"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:861
+msgid "from subsequent NAMEs.  An argument of `--' disables further option"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:862
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:874
+msgid "processing."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:868
+msgid "The given NAMEs are marked readonly and the values of these NAMEs may"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:869
+msgid "not be changed by subsequent assignment.  If the -f option is given,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:870
+msgid "then functions corresponding to the NAMEs are so marked.  If no"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:871
+msgid "arguments are given, or if `-p' is given, a list of all readonly names"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:872
+msgid "is printed.  The `-a' option means to treat each NAME as"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:873
+msgid "an array variable.  An argument of `--' disables further option"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:880
+msgid "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:881
+msgid "not given, it is assumed to be 1."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:887
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:896
+msgid "Read and execute commands from FILENAME and return.  The pathnames"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:888
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:897
+msgid "in $PATH are used to find the directory containing FILENAME.  If any"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:889
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:898
+msgid "ARGUMENTS are supplied, they become the positional parameters when"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:890
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:899
+msgid "FILENAME is executed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:906
+msgid "Suspend the execution of this shell until it receives a SIGCONT"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:907
+msgid "signal.  The `-f' if specified says not to complain about this"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:908
+msgid "being a login shell if it is; just suspend anyway."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:915
+msgid "Exits with a status of 0 (true) or 1 (false) depending on"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:916
+msgid "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:917
+msgid "expressions are often used to examine the status of a file.  There"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:918
+msgid "are string operators as well, and numeric comparison operators."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:920
+msgid "File operators:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:922
+msgid "    -a FILE        True if file exists."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:923
+msgid "    -b FILE        True if file is block special."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:924
+msgid "    -c FILE        True if file is character special."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:925
+msgid "    -d FILE        True if file is a directory."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:926
+msgid "    -e FILE        True if file exists."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:927
+msgid "    -f FILE        True if file exists and is a regular file."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:928
+msgid "    -g FILE        True if file is set-group-id."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:929
+msgid "    -h FILE        True if file is a symbolic link."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:930
+msgid "    -L FILE        True if file is a symbolic link."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:931
+msgid "    -k FILE        True if file has its `sticky' bit set."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:932
+msgid "    -p FILE        True if file is a named pipe."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:933
+msgid "    -r FILE        True if file is readable by you."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:934
+msgid "    -s FILE        True if file exists and is not empty."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:935
+msgid "    -S FILE        True if file is a socket."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:936
+msgid "    -t FD          True if FD is opened on a terminal."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:937
+msgid "    -u FILE        True if the file is set-user-id."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:938
+msgid "    -w FILE        True if the file is writable by you."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:939
+msgid "    -x FILE        True if the file is executable by you."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:940
+msgid "    -O FILE        True if the file is effectively owned by you."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:941
+msgid "    -G FILE        True if the file is effectively owned by your group."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:942
+msgid ""
+"    -N FILE        True if the file has been modified since it was last read."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:944
+msgid "  FILE1 -nt FILE2  True if file1 is newer than file2 (according to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:945
+msgid "                   modification date)."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:947
+msgid "  FILE1 -ot FILE2  True if file1 is older than file2."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:949
+msgid "  FILE1 -ef FILE2  True if file1 is a hard link to file2."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:951
+msgid "String operators:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:953
+msgid "    -z STRING      True if string is empty."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:955
+msgid "    -n STRING"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:956
+msgid "    STRING         True if string is not empty."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:958
+msgid "    STRING1 = STRING2"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:959
+msgid "                   True if the strings are equal."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:960
+msgid "    STRING1 != STRING2"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:961
+msgid "                   True if the strings are not equal."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:962
+msgid "    STRING1 < STRING2"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:963
+msgid ""
+"                   True if STRING1 sorts before STRING2 lexicographically."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:964
+msgid "    STRING1 > STRING2"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:965
+msgid ""
+"                   True if STRING1 sorts after STRING2 lexicographically."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:967
+msgid "Other operators:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:969
+msgid "    -o OPTION      True if the shell option OPTION is enabled."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:970
+msgid "    ! EXPR         True if expr is false."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:971
+msgid "    EXPR1 -a EXPR2 True if both expr1 AND expr2 are true."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:972
+msgid "    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:974
+msgid "    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:975
+msgid "                   -lt, -le, -gt, or -ge."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:977
+msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:978
+msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:979
+msgid "than ARG2."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:985
+msgid "This is a synonym for the \"test\" builtin, but the last"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:986
+msgid "argument must be a literal `]', to match the opening `['."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:992
+msgid "Print the accumulated user and system times for processes run from"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:993
+msgid "the shell."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:999
+msgid "The command ARG is to be read and executed when the shell receives"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1000
+msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1001
+msgid "reset to their original values.  If ARG is the null string each"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1002
+msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1003
+msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1004
+msgid "the shell.  If a SIGNAL_SPEC is DEBUG, ARG is executed after every"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1005
+msgid "command.  If ARG is `-p' then the trap commands associated with"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1006
+msgid "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1007
+msgid "only `-p' is given, trap prints the list of commands associated with"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1008
+msgid ""
+"each signal number.  Each SIGNAL_SPEC is either a signal name in <signal.h>"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1009
+msgid "or a signal number.  `trap -l' prints a list of signal names and their"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1010
+msgid "corresponding numbers.  Note that a signal can be sent to the shell"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1011
+msgid "with \"kill -signal $$\"."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1017
+msgid "For each NAME, indicate how it would be interpreted if used as a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1018
+msgid "command name."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1020
+msgid "If the -t option is used, `type' outputs a single word which is one of"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1021
+msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1022
+msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1023
+msgid "or unfound, respectively."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1025
+msgid "If the -p flag is used, `type' either returns the name of the disk"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1026
+msgid "file that would be executed, or nothing if `type -t NAME' would not"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1027
+msgid "return `file'."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1029
+msgid "If the -a flag is used, `type' displays all of the places that contain"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1030
+msgid "an executable named `file'.  This includes aliases, builtins, and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1031
+msgid "functions, if and only if the -p flag is not also used."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1033
+msgid "The -f flag suppresses shell function lookup."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1035
+msgid "The -P flag forces a PATH search for each NAME, even if it is an alias,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1036
+msgid "builtin, or function, and returns the name of the disk file that would"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1037
+msgid "be executed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1044
+msgid "Ulimit provides control over the resources available to processes"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1045
+msgid "started by the shell, on systems that allow such control.  If an"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1046
+msgid "option is given, it is interpreted as follows:"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1048
+msgid "    -S\tuse the `soft' resource limit"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1049
+msgid "    -H\tuse the `hard' resource limit"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1050
+msgid "    -a\tall current limits are reported"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1051
+msgid "    -c\tthe maximum size of core files created"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1052
+msgid "    -d\tthe maximum size of a process's data segment"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1053
+msgid "    -f\tthe maximum size of files created by the shell"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1054
+msgid "    -l\tthe maximum size a process may lock into memory"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1055
+msgid "    -m\tthe maximum resident set size"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1056
+msgid "    -n\tthe maximum number of open file descriptors"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1057
+msgid "    -p\tthe pipe buffer size"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1058
+msgid "    -s\tthe maximum stack size"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1059
+msgid "    -t\tthe maximum amount of cpu time in seconds"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1060
+msgid "    -u\tthe maximum number of user processes"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1061
+msgid "    -v\tthe size of virtual memory"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1063
+msgid "If LIMIT is given, it is the new value of the specified resource;"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1064
+msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1065
+msgid ""
+"the current soft limit, the current hard limit, and no limit, respectively."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1066
+msgid "Otherwise, the current value of the specified resource is printed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1067
+msgid "If no option is given, then -f is assumed.  Values are in 1024-byte"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1068
+msgid "increments, except for -t, which is in seconds, -p, which is in"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1069
+msgid "increments of 512 bytes, and -u, which is an unscaled number of"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1070
+msgid "processes."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1077
+msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1078
+msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1079
+msgid "option makes the output symbolic; otherwise an octal number is output."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1080
+msgid "If `-p' is supplied, and MODE is omitted, the output is in a form"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1081
+msgid "that may be used as input.  If MODE begins with a digit, it is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1082
+msgid "interpreted as an octal number, otherwise it is a symbolic mode string"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1083
+msgid "like that accepted by chmod(1)."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1090
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1102
+msgid "Wait for the specified process and report its termination status.  If"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1091
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1103
+msgid "N is not given, all currently active child processes are waited for,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1092
+msgid "and the return code is zero.  N may be a process ID or a job"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1093
+msgid "specification; if a job spec is given, all processes in the job's"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1094
+msgid "pipeline are waited for."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1104
+msgid "and the return code is zero.  N is a process ID; if it is not given,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1105
+msgid "all child processes of the shell are waited for."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1112
+msgid "The `for' loop executes a sequence of commands for each member in a"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1113
+msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1114
+msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1115
+msgid "the COMMANDS are executed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1121
+msgid "Equivalent to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1122
+msgid "\t(( EXP1 ))"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1123
+msgid "\twhile (( EXP2 )); do"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1124
+msgid "\t\tCOMMANDS"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1125
+msgid "\t\t(( EXP3 ))"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1126
+msgid "\tdone"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1127
+msgid "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1128
+msgid "omitted, it behaves as if it evaluates to 1."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1134
+msgid "The WORDS are expanded, generating a list of words.  The"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1135
+msgid "set of expanded words is printed on the standard error, each"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1136
+msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1137
+msgid "is assumed.  The PS3 prompt is then displayed and a line read"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1138
+msgid "from the standard input.  If the line consists of the number"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1139
+msgid "corresponding to one of the displayed words, then NAME is set"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1140
+msgid "to that word.  If the line is empty, WORDS and the prompt are"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1141
+msgid "redisplayed.  If EOF is read, the command completes.  Any other"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1142
+msgid "value read causes NAME to be set to null.  The line read is saved"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1143
+msgid "in the variable REPLY.  COMMANDS are executed after each selection"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1144
+msgid "until a break command is executed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1150
+msgid "Execute PIPELINE and print a summary of the real time, user CPU time,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1151
+msgid "and system CPU time spent executing PIPELINE when it terminates."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1152
+msgid "The return status is the return status of PIPELINE.  The `-p' option"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1153
+msgid "prints the timing summary in a slightly different format.  This uses"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1154
+msgid "the value of the TIMEFORMAT variable as the output format."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1160
+msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1161
+msgid "`|' is used to separate multiple patterns."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1167
+msgid ""
+"The if COMMANDS are executed.  If the exit status is zero, then the then"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1168
+msgid ""
+"COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1169
+msgid ""
+"in turn, and if the exit status is zero, the corresponding then COMMANDS"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1170
+msgid ""
+"are executed and the if command completes.  Otherwise, the else COMMANDS"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1171
+msgid ""
+"are executed, if present.  The exit status is the exit status of the last"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1172
+msgid "command executed, or zero if no condition tested true."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1178
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1185
+msgid "Expand and execute COMMANDS as long as the final command in the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1179
+msgid "`while' COMMANDS has an exit status of zero."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1186
+msgid "`until' COMMANDS has an exit status which is not zero."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1192
+msgid "Create a simple command invoked by NAME which runs COMMANDS."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1193
+msgid "Arguments on the command line along with NAME are passed to the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1194
+msgid "function as $0 .. $n."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1200
+msgid "Run a set of commands in a group.  This is one way to redirect an"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1201
+msgid "entire set of commands."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1207
+msgid "This is similar to the `fg' command.  Resume a stopped or background"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1208
+msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1209
+msgid "WORD, then the job whose name begins with WORD is used.  Following the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1210
+msgid "job specification with a `&' places the job in the background."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1216
+msgid "The EXPRESSION is evaluated according to the rules for arithmetic"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1217
+msgid "evaluation.  Equivalent to \"let EXPRESSION\"."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1223
+msgid ""
+"Returns a status of 0 or 1 depending on the evaluation of the conditional"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1224
+msgid ""
+"expression EXPRESSION.  Expressions are composed of the same primaries used"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1225
+msgid ""
+"by the `test' builtin, and may be combined using the following operators"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1227
+msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1228
+msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1229
+msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1230
+msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1232
+msgid ""
+"When the `==' and `!=' operators are used, the string to the right of the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1233
+msgid "operator is used as a pattern and pattern matching is performed.  The"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1234
+msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1235
+msgid "determine the expression's value."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1241
+msgid "BASH_VERSION    Version information for this Bash."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1242
+msgid "CDPATH          A colon separated list of directories to search"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1243
+msgid "\t\twhen the argument to `cd' is not found in the current"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1244
+msgid "\t\tdirectory."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1245
+msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1246
+msgid "\t\tbe ignored by pathname expansion."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1248
+msgid ""
+"HISTFILE        The name of the file where your command history is stored."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1249
+msgid "HISTFILESIZE    The maximum number of lines this file can contain."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1250
+msgid "HISTSIZE        The maximum number of history lines that a running"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1251
+msgid "\t\tshell can access."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1253
+msgid "HOME            The complete pathname to your login directory."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1254
+msgid "HOSTNAME\tThe name of the current host."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1255
+msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1256
+msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1257
+msgid "\t\tcharacter as the sole input.  If set, then the value"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1258
+msgid "\t\tof it is the number of EOF characters that can be seen"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1259
+msgid "\t\tin a row on an empty line before the shell will exit"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1260
+msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1261
+msgid "MACHTYPE\tA string describing the current system Bash is running on."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1262
+msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1263
+msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1264
+msgid "\t\tfor new mail."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1265
+msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1266
+msgid "PATH            A colon-separated list of directories to search when"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1267
+msgid "\t\tlooking for commands."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1268
+msgid "PROMPT_COMMAND  A command to be executed before the printing of each"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1269
+msgid "\t\tprimary prompt."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1270
+msgid "PS1             The primary prompt string."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1271
+msgid "PS2             The secondary prompt string."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1272
+msgid "PWD\t\tThe full pathname of the current directory."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1273
+msgid "SHELLOPTS\tA colon-separated list of enabled shell options."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1274
+msgid "TERM            The name of the current terminal type."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1275
+msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1276
+msgid "\t\t`time' reserved word."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1277
+msgid "auto_resume     Non-null means a command word appearing on a line by"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1278
+msgid "\t\titself is first looked for in the list of currently"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1279
+msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1280
+msgid "\t\tA value of `exact' means that the command word must"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1281
+msgid "\t\texactly match a command in the list of stopped jobs.  A"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1282
+msgid "\t\tvalue of `substring' means that the command word must"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1283
+msgid "\t\tmatch a substring of the job.  Any other value means that"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1284
+msgid "\t\tthe command must be a prefix of a stopped job."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1287
+msgid "histchars       Characters controlling history expansion and quick"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1288
+msgid "\t\tsubstitution.  The first character is the history"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1289
+msgid "\t\tsubstitution character, usually `!'.  The second is"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1290
+msgid "\t\tthe `quick substitution' character, usually `^'.  The"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1291
+msgid "\t\tthird is the `history comment' character, usually `#'."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1293
+msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1294
+msgid "\t\tcommands should be saved on the history list."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1302
+msgid "Adds a directory to the top of the directory stack, or rotates"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1303
+msgid "the stack, making the new top of the stack the current working"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1304
+msgid "directory.  With no arguments, exchanges the top two directories."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1306
+msgid "+N\tRotates the stack so that the Nth directory (counting"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1307
+msgid "\tfrom the left of the list shown by `dirs', starting with"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1308
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1312
+msgid "\tzero) is at the top."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1310
+msgid "-N\tRotates the stack so that the Nth directory (counting"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1311
+msgid "\tfrom the right of the list shown by `dirs', starting with"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1314
+msgid "-n\tsuppress the normal change of directory when adding directories"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1315
+msgid "\tto the stack, so only the stack is manipulated."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1317
+msgid "dir\tadds DIR to the directory stack at the top, making it the"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1318
+msgid "\tnew current working directory."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1320
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1343
+msgid "You can see the directory stack with the `dirs' command."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1328
+msgid "Removes entries from the directory stack.  With no arguments,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1329
+msgid "removes the top directory from the stack, and cd's to the new"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1330
+msgid "top directory."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1332
+msgid "+N\tremoves the Nth entry counting from the left of the list"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1333
+msgid "\tshown by `dirs', starting with zero.  For example: `popd +0'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1334
+msgid "\tremoves the first directory, `popd +1' the second."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1336
+msgid "-N\tremoves the Nth entry counting from the right of the list"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1337
+msgid "\tshown by `dirs', starting with zero.  For example: `popd -0'"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1338
+msgid "\tremoves the last directory, `popd -1' the next to last."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1340
+msgid "-n\tsuppress the normal change of directory when removing directories"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1341
+msgid "\tfrom the stack, so only the stack is manipulated."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1351
+msgid "Display the list of currently remembered directories.  Directories"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1352
+msgid "find their way onto the list with the `pushd' command; you can get"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1353
+msgid "back up through the list with the `popd' command."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1355
+msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1356
+msgid "of directories which are relative to your home directory.  This means"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1357
+msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1358
+msgid "causes `dirs' to print the directory stack with one entry per line,"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1359
+msgid "prepending the directory name with its position in the stack.  The -p"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1360
+msgid "flag does the same thing, but the stack position is not prepended."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1361
+msgid "The -c flag clears the directory stack by deleting all of the elements."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1363
+msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1364
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1367
+msgid "\tdirs when invoked without options, starting with zero."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1366
+msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1374
+msgid "Toggle the values of variables controlling optional behavior."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1375
+msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1376
+msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1377
+msgid "status indicates whether each OPTNAME is set or unset.  The -o"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1378
+msgid "option restricts the OPTNAMEs to those defined for use with"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1379
+msgid "`set -o'.  With no options, or with the -p option, a list of all"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1380
+msgid "settable options is displayed, with an indication of whether or"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1381
+msgid "not each is set."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1387
+msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1388
+msgid "is a character string which contains three types of objects: plain"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1389
+msgid ""
+"characters, which are simply copied to standard output, character escape"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1390
+msgid "sequences which are converted and copied to the standard output, and"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1391
+msgid ""
+"format specifications, each of which causes printing of the next successive"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1392
+msgid "argument.  In addition to the standard printf(1) formats, %b means to"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1393
+msgid "expand backslash escape sequences in the corresponding argument, and %q"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1394
+msgid "means to quote the argument in a way that can be reused as shell input."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1401
+msgid "For each NAME, specify how arguments are to be completed."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1402
+msgid "If the -p option is supplied, or if no options are supplied, existing"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1403
+msgid "completion specifications are printed in a way that allows them to be"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1404
+msgid "reused as input.  The -r option removes a completion specification for"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1405
+msgid "each NAME, or, if no NAMEs are supplied, all completion specifications."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1413
+msgid "Display the possible completions depending on the options.  Intended"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1414
+msgid ""
+"to be used from within a shell function generating possible completions."
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1415
+msgid "If the optional WORD argument is supplied, matches against WORD are"
+msgstr ""
+
+#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1416
+msgid "generated."
+msgstr ""
diff --git a/po.orig/en@boldquot.gmo b/po.orig/en@boldquot.gmo
new file mode 100644 (file)
index 0000000..6a9c77b
Binary files /dev/null and b/po.orig/en@boldquot.gmo differ
diff --git a/po.orig/en@boldquot.header b/po.orig/en@boldquot.header
new file mode 100644 (file)
index 0000000..fedb6a0
--- /dev/null
@@ -0,0 +1,25 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
diff --git a/po.orig/en@boldquot.po b/po.orig/en@boldquot.po
new file mode 100644 (file)
index 0000000..652c51b
--- /dev/null
@@ -0,0 +1,4349 @@
+# English translations for GNU bash package.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# This file is distributed under the same license as the GNU bash package.
+# Automatically generated, 2004.
+#
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
+#: builtins/caller.def:128 builtins/caller.def:132 builtins/pushd.def:655
+#: builtins/pushd.def:663 builtins/pushd.def:666 builtins/pushd.def:676
+#: builtins/pushd.def:680 builtins/pushd.def:684 builtins/pushd.def:687
+#: builtins/pushd.def:690 builtins/pushd.def:699 builtins/pushd.def:703
+#: builtins/pushd.def:707 builtins/pushd.def:710 builtins.c:321 builtins.c:325
+#: builtins.c:390 builtins.c:392 builtins.c:401 builtins.c:404 builtins.c:408
+#: builtins.c:445 builtins.c:487 builtins.c:491 builtins.c:498 builtins.c:509
+#: builtins.c:513 builtins.c:552 builtins.c:555 builtins.c:559 builtins.c:562
+#: builtins.c:630 builtins.c:637 builtins.c:692 builtins.c:713 builtins.c:718
+#: builtins.c:722 builtins.c:745 builtins.c:835 builtins.c:919 builtins.c:921
+#: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952
+#: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973
+#: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028
+#: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062
+#: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309
+#: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331
+#: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354
+#: builtins.c:1362 builtins.c:1365
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bash 3.0-rc1\n"
+"POT-Creation-Date: 2003-12-22 15:34-0500\n"
+"PO-Revision-Date: 2003-12-22 15:34-0500\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: bug-bash@gnu.org\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: arrayfunc.c:45
+msgid "bad array subscript"
+msgstr "bad array subscript"
+
+#: arrayfunc.c:306
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: cannot assign to non-numeric index"
+
+#: bashhist.c:321
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: cannot create: %s"
+
+#: bashline.c:2791
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr "bash_execute_unix_command: cannot find keymap for command"
+
+#: bashline.c:2840
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: first non-whitespace character is not ‘\e[1m\"\e[0m’"
+
+#: bashline.c:2869
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "no closing ‘\e[1m%c\e[0m’ in %s"
+
+#: bashline.c:2903
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: missing colon separator"
+
+#: builtins/alias.def:123
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "‘\e[1m%s\e[0m’: invalid alias name"
+
+#: builtins/bind.def:194
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "‘\e[1m%s\e[0m’: invalid keymap name"
+
+#: builtins/bind.def:233
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: cannot read: %s"
+
+#: builtins/bind.def:248
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "‘\e[1m%s\e[0m’: cannot unbind"
+
+#: builtins/bind.def:283
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "‘\e[1m%s\e[0m’: unknown function name"
+
+#: builtins/bind.def:291
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s is not bound to any keys.\n"
+
+#: builtins/bind.def:295
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s can be invoked via "
+
+#: builtins/break.def:128
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "only meaningful in a ‘\e[1mfor\e[0m’, ‘\e[1mwhile\e[0m’, or ‘\e[1muntil\e[0m’ loop"
+
+#: builtins/caller.def:127 builtins.c:320
+msgid "Returns the context of the current subroutine call."
+msgstr "Returns the context of the current subroutine call."
+
+#: builtins/caller.def:129 builtins.c:322
+msgid "Without EXPR, returns returns \"$line $filename\".  With EXPR,"
+msgstr "Without EXPR, returns returns “\e[1m$line $filename\e[0m”.  With EXPR,"
+
+#: builtins/caller.def:130 builtins.c:323
+msgid "returns \"$line $subroutine $filename\"; this extra information"
+msgstr "returns “\e[1m$line $subroutine $filename\e[0m”; this extra information"
+
+#: builtins/caller.def:131 builtins.c:324
+msgid "can be used used to provide a stack trace."
+msgstr "can be used used to provide a stack trace."
+
+#: builtins/caller.def:133 builtins.c:326
+msgid "The value of EXPR indicates how many call frames to go back before the"
+msgstr "The value of EXPR indicates how many call frames to go back before the"
+
+#: builtins/caller.def:134 builtins.c:327
+msgid "current one; the top frame is frame 0."
+msgstr "current one; the top frame is frame 0."
+
+#: builtins/cd.def:188
+msgid "HOME not set"
+msgstr "HOME not set"
+
+#: builtins/cd.def:200
+msgid "OLDPWD not set"
+msgstr "OLDPWD not set"
+
+#: builtins/cd.def:357
+#, c-format
+msgid "write error: %s"
+msgstr "write error: %s"
+
+#: builtins/common.c:133 test.c:921
+msgid "too many arguments"
+msgstr "too many arguments"
+
+#: builtins/common.c:157 shell.c:465 shell.c:737
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: option requires an argument"
+
+#: builtins/common.c:164
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: numeric argument required"
+
+#: builtins/common.c:171
+#, c-format
+msgid "%s: not found"
+msgstr "%s: not found"
+
+#: builtins/common.c:180 shell.c:750
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: invalid option"
+
+#: builtins/common.c:187
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: invalid option name"
+
+#: builtins/common.c:194 general.c:229 general.c:234
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "‘\e[1m%s\e[0m’: not a valid identifier"
+
+#: builtins/common.c:201
+#, c-format
+msgid "%s: invalid number"
+msgstr "%s: invalid number"
+
+#: builtins/common.c:208
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: invalid signal specification"
+
+#: builtins/common.c:215
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr "‘\e[1m%s\e[0m’: not a pid or valid job spec"
+
+#: builtins/common.c:222 error.c:453
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: readonly variable"
+
+#: builtins/common.c:230
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s out of range"
+
+#: builtins/common.c:230 builtins/common.c:232
+msgid "argument"
+msgstr "argument"
+
+#: builtins/common.c:232
+#, c-format
+msgid "%s out of range"
+msgstr "%s out of range"
+
+#: builtins/common.c:240
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: no such job"
+
+#: builtins/common.c:248
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: no job control"
+
+#: builtins/common.c:250
+msgid "no job control"
+msgstr "no job control"
+
+#: builtins/common.c:260
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: restricted"
+
+#: builtins/common.c:262
+msgid "restricted"
+msgstr "restricted"
+
+#: builtins/common.c:270
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: not a shell builtin"
+
+#: builtins/common.c:486
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: error retrieving current directory: %s: %s\n"
+
+#: builtins/common.c:553 builtins/common.c:555
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: ambiguous job spec"
+
+#: builtins/complete.def:251
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: invalid action name"
+
+#: builtins/complete.def:381 builtins/complete.def:524
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: no completion specification"
+
+#: builtins/complete.def:571
+msgid "warning: -F option may not work as you expect"
+msgstr "warning: -F option may not work as you expect"
+
+#: builtins/complete.def:573
+msgid "warning: -C option may not work as you expect"
+msgstr "warning: -C option may not work as you expect"
+
+#: builtins/declare.def:105
+msgid "can only be used in a function"
+msgstr "can only be used in a function"
+
+#: builtins/declare.def:295
+msgid "cannot use `-f' to make functions"
+msgstr "cannot use ‘\e[1m-f\e[0m’ to make functions"
+
+#: builtins/declare.def:307 execute_cmd.c:3949
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: readonly function"
+
+#: builtins/declare.def:389
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: cannot destroy array variables in this way"
+
+#: builtins/enable.def:128 builtins/enable.def:136
+msgid "dynamic loading not available"
+msgstr "dynamic loading not available"
+
+#: builtins/enable.def:303
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "cannot open shared object %s: %s"
+
+#: builtins/enable.def:326
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "cannot find %s in shared object %s: %s"
+
+#: builtins/enable.def:450
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: not dynamically loaded"
+
+#: builtins/enable.def:465
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr "%s: cannot delete: %s"
+
+#: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: is a directory"
+
+#: builtins/evalfile.c:133
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: not a regular file"
+
+#: builtins/evalfile.c:141
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: file is too large"
+
+#: builtins/exec.def:205
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: cannot execute: %s"
+
+#: builtins/exit.def:83
+msgid "not login shell: use `exit'"
+msgstr "not login shell: use ‘\e[1mexit\e[0m’"
+
+#: builtins/exit.def:111
+msgid "There are stopped jobs.\n"
+msgstr "There are stopped jobs.\n"
+
+#: builtins/fc.def:252
+msgid "no command found"
+msgstr "no command found"
+
+#: builtins/fc.def:317
+msgid "history specification"
+msgstr "history specification"
+
+#: builtins/fc.def:338
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr "%s: cannot open temp file: %s"
+
+#: builtins/fg_bg.def:133
+#, c-format
+msgid "job %d started without job control"
+msgstr "job %d started without job control"
+
+#: builtins/getopt.c:109
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: illegal option -- %c\n"
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: option requires an argument -- %c\n"
+
+#: builtins/hash.def:83
+msgid "hashing disabled"
+msgstr "hashing disabled"
+
+#: builtins/hash.def:128
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s: hash table empty\n"
+
+#: builtins/help.def:108
+msgid "Shell commands matching keywords `"
+msgstr "Shell commands matching keywords `"
+
+#: builtins/help.def:110
+msgid "Shell commands matching keyword `"
+msgstr "Shell commands matching keyword `"
+
+#: builtins/help.def:138
+#, c-format
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"no help topics match ‘\e[1m%s\e[0m’.  Try ‘\e[1mhelp help\e[0m’ or ‘\e[1mman -k %s\e[0m’ "
+"or ‘\e[1minfo %s\e[0m’."
+
+#: builtins/help.def:164
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: cannot open: %s"
+
+#: builtins/help.def:182
+msgid ""
+"These shell commands are defined internally.  Type `help' to see this list.\n"
+"Type `help name' to find out more about the function `name'.\n"
+"Use `info bash' to find out more about the shell in general.\n"
+"Use `man -k' or `info' to find out more about commands not in this list.\n"
+"\n"
+"A star (*) next to a name means that the command is disabled.\n"
+"\n"
+msgstr ""
+"These shell commands are defined internally.  Type ‘\e[1mhelp\e[0m’ to see this "
+"list.\n"
+"Type ‘\e[1mhelp name\e[0m’ to find out more about the function ‘\e[1mname\e[0m’.\n"
+"Use ‘\e[1minfo bash\e[0m’ to find out more about the shell in general.\n"
+"Use ‘\e[1mman -k\e[0m’ or ‘\e[1minfo\e[0m’ to find out more about commands not in "
+"this list.\n"
+"\n"
+"A star (*) next to a name means that the command is disabled.\n"
+"\n"
+
+#: builtins/history.def:148
+msgid "cannot use more than one of -anrw"
+msgstr "cannot use more than one of -anrw"
+
+#: builtins/history.def:180
+msgid "history position"
+msgstr "history position"
+
+#: builtins/history.def:390
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: history expansion failed"
+
+#: builtins/jobs.def:99
+msgid "no other options allowed with `-x'"
+msgstr "no other options allowed with ‘\e[1m-x\e[0m’"
+
+#: builtins/kill.def:187
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: arguments must be process or job IDs"
+
+#: builtins/kill.def:248
+msgid "Unknown error"
+msgstr "Unknown error"
+
+#: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511
+msgid "expression expected"
+msgstr "expression expected"
+
+#: builtins/printf.def:249
+#, c-format
+msgid "`%s': missing format character"
+msgstr "‘\e[1m%s\e[0m’: missing format character"
+
+#: builtins/printf.def:408
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "‘\e[1m%c\e[0m’: invalid format character"
+
+#: builtins/printf.def:601
+msgid "missing hex digit for \\x"
+msgstr "missing hex digit for \\x"
+
+#: builtins/pushd.def:168
+msgid "no other directory"
+msgstr "no other directory"
+
+#: builtins/pushd.def:435
+msgid "<no current directory>"
+msgstr "<no current directory>"
+
+#: builtins/pushd.def:652 builtins.c:1351
+msgid "Display the list of currently remembered directories.  Directories"
+msgstr "Display the list of currently remembered directories.  Directories"
+
+#: builtins/pushd.def:653 builtins.c:1352
+msgid "find their way onto the list with the `pushd' command; you can get"
+msgstr ""
+"find their way onto the list with the ‘\e[1mpushd\e[0m’ command; you can get"
+
+#: builtins/pushd.def:654 builtins.c:1353
+msgid "back up through the list with the `popd' command."
+msgstr "back up through the list with the ‘\e[1mpopd\e[0m’ command."
+
+#: builtins/pushd.def:656 builtins.c:1355
+msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+msgstr ""
+"The -l flag specifies that ‘\e[1mdirs\e[0m’ should not print shorthand versions"
+
+#: builtins/pushd.def:657 builtins.c:1356
+msgid "of directories which are relative to your home directory.  This means"
+msgstr "of directories which are relative to your home directory.  This means"
+
+#: builtins/pushd.def:658 builtins.c:1357
+msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
+msgstr ""
+"that ‘\e[1m~/bin\e[0m’ might be displayed as ‘\e[1m/homes/bfox/bin\e[0m’.  The -v "
+"flag"
+
+#: builtins/pushd.def:659 builtins.c:1358
+msgid "causes `dirs' to print the directory stack with one entry per line,"
+msgstr ""
+"causes ‘\e[1mdirs\e[0m’ to print the directory stack with one entry per line,"
+
+#: builtins/pushd.def:660 builtins.c:1359
+msgid "prepending the directory name with its position in the stack.  The -p"
+msgstr "prepending the directory name with its position in the stack.  The -p"
+
+#: builtins/pushd.def:661 builtins.c:1360
+msgid "flag does the same thing, but the stack position is not prepended."
+msgstr "flag does the same thing, but the stack position is not prepended."
+
+#: builtins/pushd.def:662 builtins.c:1361
+msgid "The -c flag clears the directory stack by deleting all of the elements."
+msgstr ""
+"The -c flag clears the directory stack by deleting all of the elements."
+
+#: builtins/pushd.def:664
+msgid "+N   displays the Nth entry counting from the left of the list shown by"
+msgstr ""
+"+N   displays the Nth entry counting from the left of the list shown by"
+
+#: builtins/pushd.def:665 builtins/pushd.def:668
+msgid "     dirs when invoked without options, starting with zero."
+msgstr "     dirs when invoked without options, starting with zero."
+
+#: builtins/pushd.def:667
+msgid ""
+"-N   displays the Nth entry counting from the right of the list shown by"
+msgstr ""
+"-N   displays the Nth entry counting from the right of the list shown by"
+
+#: builtins/pushd.def:673 builtins.c:1302
+msgid "Adds a directory to the top of the directory stack, or rotates"
+msgstr "Adds a directory to the top of the directory stack, or rotates"
+
+#: builtins/pushd.def:674 builtins.c:1303
+msgid "the stack, making the new top of the stack the current working"
+msgstr "the stack, making the new top of the stack the current working"
+
+#: builtins/pushd.def:675 builtins.c:1304
+msgid "directory.  With no arguments, exchanges the top two directories."
+msgstr "directory.  With no arguments, exchanges the top two directories."
+
+#: builtins/pushd.def:677
+msgid "+N   Rotates the stack so that the Nth directory (counting"
+msgstr "+N   Rotates the stack so that the Nth directory (counting"
+
+#: builtins/pushd.def:678
+msgid "     from the left of the list shown by `dirs', starting with"
+msgstr "     from the left of the list shown by ‘\e[1mdirs\e[0m’, starting with"
+
+#: builtins/pushd.def:679 builtins/pushd.def:683
+msgid "     zero) is at the top."
+msgstr "     zero) is at the top."
+
+#: builtins/pushd.def:681
+msgid "-N   Rotates the stack so that the Nth directory (counting"
+msgstr "-N   Rotates the stack so that the Nth directory (counting"
+
+#: builtins/pushd.def:682
+msgid "     from the right of the list shown by `dirs', starting with"
+msgstr "     from the right of the list shown by ‘\e[1mdirs\e[0m’, starting with"
+
+#: builtins/pushd.def:685
+msgid "-n   suppress the normal change of directory when adding directories"
+msgstr "-n   suppress the normal change of directory when adding directories"
+
+#: builtins/pushd.def:686
+msgid "     to the stack, so only the stack is manipulated."
+msgstr "     to the stack, so only the stack is manipulated."
+
+#: builtins/pushd.def:688
+msgid "dir  adds DIR to the directory stack at the top, making it the"
+msgstr "dir  adds DIR to the directory stack at the top, making it the"
+
+#: builtins/pushd.def:689
+msgid "     new current working directory."
+msgstr "     new current working directory."
+
+#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320
+#: builtins.c:1343
+msgid "You can see the directory stack with the `dirs' command."
+msgstr "You can see the directory stack with the ‘\e[1mdirs\e[0m’ command."
+
+#: builtins/pushd.def:696 builtins.c:1328
+msgid "Removes entries from the directory stack.  With no arguments,"
+msgstr "Removes entries from the directory stack.  With no arguments,"
+
+#: builtins/pushd.def:697 builtins.c:1329
+msgid "removes the top directory from the stack, and cd's to the new"
+msgstr "removes the top directory from the stack, and cd's to the new"
+
+#: builtins/pushd.def:698 builtins.c:1330
+msgid "top directory."
+msgstr "top directory."
+
+#: builtins/pushd.def:700
+msgid "+N   removes the Nth entry counting from the left of the list"
+msgstr "+N   removes the Nth entry counting from the left of the list"
+
+#: builtins/pushd.def:701
+msgid "     shown by `dirs', starting with zero.  For example: `popd +0'"
+msgstr ""
+"     shown by ‘\e[1mdirs\e[0m’, starting with zero.  For example: ‘\e[1mpopd +0\e[0m’"
+
+#: builtins/pushd.def:702
+msgid "     removes the first directory, `popd +1' the second."
+msgstr "     removes the first directory, ‘\e[1mpopd +1\e[0m’ the second."
+
+#: builtins/pushd.def:704
+msgid "-N   removes the Nth entry counting from the right of the list"
+msgstr "-N   removes the Nth entry counting from the right of the list"
+
+#: builtins/pushd.def:705
+msgid "     shown by `dirs', starting with zero.  For example: `popd -0'"
+msgstr ""
+"     shown by ‘\e[1mdirs\e[0m’, starting with zero.  For example: ‘\e[1mpopd -0\e[0m’"
+
+#: builtins/pushd.def:706
+msgid "     removes the last directory, `popd -1' the next to last."
+msgstr "     removes the last directory, ‘\e[1mpopd -1\e[0m’ the next to last."
+
+#: builtins/pushd.def:708
+msgid "-n   suppress the normal change of directory when removing directories"
+msgstr "-n   suppress the normal change of directory when removing directories"
+
+#: builtins/pushd.def:709
+msgid "     from the stack, so only the stack is manipulated."
+msgstr "     from the stack, so only the stack is manipulated."
+
+#: builtins/read.def:207
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: invalid timeout specification"
+
+#: builtins/read.def:230
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: invalid file descriptor specification"
+
+#: builtins/read.def:237
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: invalid file descriptor: %s"
+
+#: builtins/read.def:463
+#, c-format
+msgid "read error: %d: %s"
+msgstr "read error: %d: %s"
+
+#: builtins/return.def:63
+msgid "can only `return' from a function or sourced script"
+msgstr "can only ‘\e[1mreturn\e[0m’ from a function or sourced script"
+
+#: builtins/set.def:743
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "cannot simultaneously unset a function and a variable"
+
+#: builtins/set.def:780
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: cannot unset"
+
+#: builtins/set.def:787
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: cannot unset: readonly %s"
+
+#: builtins/set.def:798
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: not an array variable"
+
+#: builtins/setattr.def:165
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: not a function"
+
+#: builtins/shift.def:66 builtins/shift.def:72
+msgid "shift count"
+msgstr "shift count"
+
+#: builtins/shopt.def:226
+msgid "cannot set and unset shell options simultaneously"
+msgstr "cannot set and unset shell options simultaneously"
+
+#: builtins/shopt.def:291
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: invalid shell option name"
+
+#: builtins/source.def:117
+msgid "filename argument required"
+msgstr "filename argument required"
+
+#: builtins/source.def:137
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: file not found"
+
+#: builtins/suspend.def:93
+msgid "cannot suspend"
+msgstr "cannot suspend"
+
+#: builtins/suspend.def:103
+msgid "cannot suspend a login shell"
+msgstr "cannot suspend a login shell"
+
+#: builtins/type.def:231
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s is aliased to ‘\e[1m%s\e[0m’\n"
+
+#: builtins/type.def:252
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s is a shell keyword\n"
+
+#: builtins/type.def:272
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s is a function\n"
+
+#: builtins/type.def:297
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s is a shell builtin\n"
+
+#: builtins/type.def:318
+#, c-format
+msgid "%s is %s\n"
+msgstr "%s is %s\n"
+
+#: builtins/type.def:338
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr "%s is hashed (%s)\n"
+
+#: builtins/ulimit.def:332
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: invalid limit argument"
+
+#: builtins/ulimit.def:358
+#, c-format
+msgid "`%c': bad command"
+msgstr "‘\e[1m%c\e[0m’: bad command"
+
+#: builtins/ulimit.def:387
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: cannot get limit: %s"
+
+#: builtins/ulimit.def:425
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: cannot modify limit: %s"
+
+#: builtins/umask.def:112
+msgid "octal number"
+msgstr "octal number"
+
+#: builtins/umask.def:226
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "‘\e[1m%c\e[0m’: invalid symbolic mode operator"
+
+#: builtins/umask.def:279
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "‘\e[1m%c\e[0m’: invalid symbolic mode character"
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "last command: %s\n"
+
+#: error.c:173
+msgid "Aborting..."
+msgstr "Aborting..."
+
+#: error.c:260
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: warning: "
+
+#: error.c:405
+msgid "unknown command error"
+msgstr "unknown command error"
+
+#: error.c:406
+msgid "bad command type"
+msgstr "bad command type"
+
+#: error.c:407
+msgid "bad connector"
+msgstr "bad connector"
+
+#: error.c:408
+msgid "bad jump"
+msgstr "bad jump"
+
+#: error.c:446
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: unbound variable"
+
+#: eval.c:175
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\atimed out waiting for input: auto-logout\n"
+
+#: execute_cmd.c:466
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "cannot redirect standard input from /dev/null: %s"
+
+#: execute_cmd.c:1036
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: ‘\e[1m%c\e[0m’: invalid format character"
+
+#: execute_cmd.c:3521
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: restricted: cannot specify ‘\e[1m/\e[0m’ in command names"
+
+#: execute_cmd.c:3609
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: command not found"
+
+#: execute_cmd.c:3839
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: bad interpreter"
+
+#: execute_cmd.c:3876
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: cannot execute binary file"
+
+#: execute_cmd.c:3988
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "cannot duplicate fd %d to fd %d"
+
+#: expr.c:239
+msgid "expression recursion level exceeded"
+msgstr "expression recursion level exceeded"
+
+#: expr.c:263
+msgid "recursion stack underflow"
+msgstr "recursion stack underflow"
+
+#: expr.c:374
+msgid "syntax error in expression"
+msgstr "syntax error in expression"
+
+#: expr.c:414
+msgid "attempted assignment to non-variable"
+msgstr "attempted assignment to non-variable"
+
+#: expr.c:435 expr.c:440 expr.c:750
+msgid "division by 0"
+msgstr "division by 0"
+
+#: expr.c:466
+msgid "bug: bad expassign token"
+msgstr "bug: bad expassign token"
+
+#: expr.c:508
+msgid "`:' expected for conditional expression"
+msgstr "‘\e[1m:\e[0m’ expected for conditional expression"
+
+#: expr.c:775
+msgid "exponent less than 0"
+msgstr "exponent less than 0"
+
+#: expr.c:819
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "identifier expected after pre-increment or pre-decrement"
+
+#: expr.c:847
+msgid "missing `)'"
+msgstr "missing ‘\e[1m)\e[0m’"
+
+#: expr.c:871
+msgid "syntax error: operand expected"
+msgstr "syntax error: operand expected"
+
+#: expr.c:1146
+msgid "invalid number"
+msgstr "invalid number"
+
+#: expr.c:1150
+msgid "invalid arithmetic base"
+msgstr "invalid arithmetic base"
+
+#: expr.c:1170
+msgid "value too great for base"
+msgstr "value too great for base"
+
+#: general.c:60
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: cannot access parent directories"
+
+#: input.c:231
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr "cannot allocate new file descriptor for bash input from fd %d"
+
+#: input.c:239
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr "save_bash_input: buffer already exists for new fd %d"
+
+#: jobs.c:693
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "deleting stopped job %d with process group %ld"
+
+#: jobs.c:1001
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: no such pid"
+
+#: jobs.c:1632 nojobs.c:648
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: pid %ld is not a child of this shell"
+
+#: jobs.c:1815
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: No record of process %ld"
+
+#: jobs.c:2062
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: job %d is stopped"
+
+#: jobs.c:2284
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: job has terminated"
+
+#: jobs.c:2293
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: job %d already in background"
+
+#: jobs.c:3037
+msgid "no job control in this shell"
+msgstr "no job control in this shell"
+
+#: lib/malloc/malloc.c:298
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: failed assertion: %s\n"
+
+#: lib/malloc/malloc.c:314
+#, c-format
+msgid ""
+"\r\n"
+"malloc: %s:%d: assertion botched\r\n"
+msgstr ""
+"\r\n"
+"malloc: %s:%d: assertion botched\r\n"
+
+#: lib/malloc/malloc.c:740
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: block on free list clobbered"
+
+#: lib/malloc/malloc.c:817
+msgid "free: called with already freed block argument"
+msgstr "free: called with already freed block argument"
+
+#: lib/malloc/malloc.c:820
+msgid "free: called with unallocated block argument"
+msgstr "free: called with unallocated block argument"
+
+#: lib/malloc/malloc.c:839
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: underflow detected; mh_nbytes out of range"
+
+#: lib/malloc/malloc.c:845
+msgid "free: start and end chunk sizes differ"
+msgstr "free: start and end chunk sizes differ"
+
+#: lib/malloc/malloc.c:942
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: called with unallocated block argument"
+
+#: lib/malloc/malloc.c:957
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: underflow detected; mh_nbytes out of range"
+
+#: lib/malloc/malloc.c:963
+msgid "realloc: start and end chunk sizes differ"
+msgstr "realloc: start and end chunk sizes differ"
+
+#: lib/malloc/table.c:175
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr "register_alloc: alloc table is full with FIND_ALLOC?\n"
+
+#: lib/malloc/table.c:182
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: %p already in table as allocated?\n"
+
+#: lib/malloc/table.c:218
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: %p already in table as free?\n"
+
+#: lib/malloc/watch.c:46
+msgid "allocated"
+msgstr "allocated"
+
+#: lib/malloc/watch.c:48
+msgid "freed"
+msgstr "freed"
+
+#: lib/malloc/watch.c:50
+msgid "requesting resize"
+msgstr "requesting resize"
+
+#: lib/malloc/watch.c:52
+msgid "just resized"
+msgstr "just resized"
+
+#: lib/malloc/watch.c:54
+msgid "bug: unknown operation"
+msgstr "bug: unknown operation"
+
+#: lib/malloc/watch.c:56
+#, c-format
+msgid "malloc: watch alert: %p %s "
+msgstr "malloc: watch alert: %p %s "
+
+#: lib/sh/fmtulong.c:101
+msgid "invalid base"
+msgstr "invalid base"
+
+#: lib/sh/netopen.c:158
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: host unknown"
+
+#: lib/sh/netopen.c:165
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: invalid service"
+
+#: lib/sh/netopen.c:296
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: bad network path specification"
+
+#: lib/sh/netopen.c:336
+msgid "network operations not supported"
+msgstr "network operations not supported"
+
+#: mailcheck.c:382
+msgid "You have mail in $_"
+msgstr "You have mail in $_"
+
+#: mailcheck.c:407
+msgid "You have new mail in $_"
+msgstr "You have new mail in $_"
+
+#: mailcheck.c:423
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "The mail in %s has been read\n"
+
+#: make_cmd.c:318
+msgid "syntax error: arithmetic expression required"
+msgstr "syntax error: arithmetic expression required"
+
+#: make_cmd.c:320
+msgid "syntax error: `;' unexpected"
+msgstr "syntax error: ‘\e[1m;\e[0m’ unexpected"
+
+#: make_cmd.c:321
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "syntax error: ‘\e[1m((%s))\e[0m’"
+
+#: make_cmd.c:560
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: bad instruction type %d"
+
+#: make_cmd.c:730
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr "make_redirection: redirection instruction ‘\e[1m%d\e[0m’ out of range"
+
+#: parse.y:2726
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "unexpected EOF while looking for matching ‘\e[1m%c\e[0m’"
+
+#: parse.y:3011
+msgid "unexpected EOF while looking for `]]'"
+msgstr "unexpected EOF while looking for ‘\e[1m]]\e[0m’"
+
+#: parse.y:3016
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "syntax error in conditional expression: unexpected token ‘\e[1m%s\e[0m’"
+
+#: parse.y:3020
+msgid "syntax error in conditional expression"
+msgstr "syntax error in conditional expression"
+
+#: parse.y:3098
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "unexpected token ‘\e[1m%s\e[0m’, expected ‘\e[1m)\e[0m’"
+
+#: parse.y:3102
+msgid "expected `)'"
+msgstr "expected ‘\e[1m)\e[0m’"
+
+#: parse.y:3130
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "unexpected argument ‘\e[1m%s\e[0m’ to conditional unary operator"
+
+#: parse.y:3134
+msgid "unexpected argument to conditional unary operator"
+msgstr "unexpected argument to conditional unary operator"
+
+#: parse.y:3171
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "unexpected token ‘\e[1m%s\e[0m’, conditional binary operator expected"
+
+#: parse.y:3175
+msgid "conditional binary operator expected"
+msgstr "conditional binary operator expected"
+
+#: parse.y:3191
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "unexpected argument ‘\e[1m%s\e[0m’ to conditional binary operator"
+
+#: parse.y:3195
+msgid "unexpected argument to conditional binary operator"
+msgstr "unexpected argument to conditional binary operator"
+
+#: parse.y:3206
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "unexpected token ‘\e[1m%c\e[0m’ in conditional command"
+
+#: parse.y:3209
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "unexpected token ‘\e[1m%s\e[0m’ in conditional command"
+
+#: parse.y:3213
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "unexpected token %d in conditional command"
+
+#: parse.y:4400
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "syntax error near unexpected token ‘\e[1m%s\e[0m’"
+
+#: parse.y:4418
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "syntax error near ‘\e[1m%s\e[0m’"
+
+#: parse.y:4428
+msgid "syntax error: unexpected end of file"
+msgstr "syntax error: unexpected end of file"
+
+#: parse.y:4428
+msgid "syntax error"
+msgstr "syntax error"
+
+#: parse.y:4490
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "Use “\e[1m%s\e[0m” to leave the shell.\n"
+
+#: parse.y:4649
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "unexpected EOF while looking for matching ‘\e[1m)\e[0m’"
+
+#: pcomplete.c:988
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "completion: function ‘\e[1m%s\e[0m’ not found"
+
+#: pcomplib.c:179
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: NULL COMPSPEC"
+
+#: print_cmd.c:260
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: bad connector ‘\e[1m%d\e[0m’"
+
+#: print_cmd.c:1172
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: ‘\e[1m%c\e[0m’: invalid format character"
+
+#: redir.c:99
+msgid "file descriptor out of range"
+msgstr "file descriptor out of range"
+
+#: redir.c:141
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: ambiguous redirect"
+
+#: redir.c:145
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: cannot overwrite existing file"
+
+#: redir.c:150
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: restricted: cannot redirect output"
+
+#: redir.c:155
+#, c-format
+msgid "cannot create temp file for here document: %s"
+msgstr "cannot create temp file for here document: %s"
+
+#: redir.c:509
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "/dev/(tcp|udp)/host/port not supported without networking"
+
+#: redir.c:949
+msgid "redirection error: cannot duplicate fd"
+msgstr "redirection error: cannot duplicate fd"
+
+#: shell.c:302
+msgid "could not find /tmp, please create!"
+msgstr "could not find /tmp, please create!"
+
+#: shell.c:306
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp must be a valid directory name"
+
+#: shell.c:839
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: invalid option"
+
+#: shell.c:1590
+msgid "I have no name!"
+msgstr "I have no name!"
+
+#: shell.c:1725
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+
+#: shell.c:1727
+msgid "GNU long options:\n"
+msgstr "GNU long options:\n"
+
+#: shell.c:1731
+msgid "Shell options:\n"
+msgstr "Shell options:\n"
+
+#: shell.c:1732
+msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+
+#: shell.c:1747
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\t-%s or -o option\n"
+
+#: shell.c:1753
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr ""
+"Type ‘\e[1m%s -c “\e[1mhelp set\e[0m”\e[0m’ for more information about shell "
+"options.\n"
+
+#: shell.c:1754
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr ""
+"Type ‘\e[1m%s -c help\e[0m’ for more information about shell builtin commands.\n"
+
+#: shell.c:1755
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "Use the ‘\e[1mbashbug\e[0m’ command to report bugs.\n"
+
+#: sig.c:485
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: invalid operation"
+
+#: subst.c:1011
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "bad substitution: no closing ‘\e[1m%s\e[0m’ in %s"
+
+#: subst.c:2020
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: cannot assign list to array member"
+
+#: subst.c:3516 subst.c:3532
+msgid "cannot make pipe for process substitution"
+msgstr "cannot make pipe for process substitution"
+
+#: subst.c:3563
+msgid "cannot make child for process substitution"
+msgstr "cannot make child for process substitution"
+
+#: subst.c:3608
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "cannot open named pipe %s for reading"
+
+#: subst.c:3610
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "cannot open named pipe %s for writing"
+
+#: subst.c:3618
+#, c-format
+msgid "cannout reset nodelay mode for fd %d"
+msgstr "cannout reset nodelay mode for fd %d"
+
+#: subst.c:3628
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "cannot duplicate named pipe %s as fd %d"
+
+#: subst.c:3803
+msgid "cannot make pipe for command substitution"
+msgstr "cannot make pipe for command substitution"
+
+#: subst.c:3832
+msgid "cannot make child for command substitution"
+msgstr "cannot make child for command substitution"
+
+#: subst.c:3849
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: cannot duplicate pipe as fd 1"
+
+#: subst.c:4284
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: parameter null or not set"
+
+#: subst.c:4529
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: substring expression < 0"
+
+#: subst.c:5209
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: bad substitution"
+
+#: subst.c:5283
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: cannot assign in this way"
+
+#: subst.c:6652
+#, c-format
+msgid "no match: %s"
+msgstr "no match: %s"
+
+#: test.c:154
+msgid "argument expected"
+msgstr "argument expected"
+
+#: test.c:163
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: integer expression expected"
+
+#: test.c:361
+msgid "`)' expected"
+msgstr "‘\e[1m)\e[0m’ expected"
+
+#: test.c:363
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "‘\e[1m)\e[0m’ expected, found %s"
+
+#: test.c:378 test.c:787 test.c:790
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: unary operator expected"
+
+#: test.c:543 test.c:830
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: binary operator expected"
+
+#: test.c:905
+msgid "missing `]'"
+msgstr "missing ‘\e[1m]\e[0m’"
+
+#: trap.c:194
+msgid "invalid signal number"
+msgstr "invalid signal number"
+
+#: trap.c:309
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr "run_pending_traps: bad value in trap_list[%d]: %p"
+
+#: trap.c:313
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+
+#: trap.c:349
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: bad signal %d"
+
+#: variables.c:310
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "error importing function definition for ‘\e[1m%s\e[0m’"
+
+#: variables.c:670
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "shell level (%d) too high, resetting to 1"
+
+#: variables.c:1610
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: no function context at current scope"
+
+#: variables.c:2709
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: no function context at current scope"
+
+#: variables.c:2923 variables.c:2932
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "invalid character %d in exportstr for %s"
+
+#: variables.c:2938
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "no ‘\e[1m=\e[0m’ in exportstr for %s"
+
+#: variables.c:3363
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr "pop_var_context: head of shell_variables not a function context"
+
+#: variables.c:3376
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: no global_variables context"
+
+#: variables.c:3442
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr "pop_scope: head of shell_variables not a temporary environment scope"
+
+#: version.c:82
+msgid "Copyright (C) 2004 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2004 Free Software Foundation, Inc.\n"
+
+#: xmalloc.c:93
+#, c-format
+msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"
+
+#: xmalloc.c:95
+#, c-format
+msgid "xmalloc: cannot allocate %lu bytes"
+msgstr "xmalloc: cannot allocate %lu bytes"
+
+#: xmalloc.c:115
+#, c-format
+msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+msgstr "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+
+#: xmalloc.c:117
+#, c-format
+msgid "xrealloc: cannot allocate %lu bytes"
+msgstr "xrealloc: cannot allocate %lu bytes"
+
+#: xmalloc.c:151
+#, c-format
+msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+
+#: xmalloc.c:153
+#, c-format
+msgid "xmalloc: %s:%d: cannot allocate %lu bytes"
+msgstr "xmalloc: %s:%d: cannot allocate %lu bytes"
+
+#: xmalloc.c:175
+#, c-format
+msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
+msgstr "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
+
+#: xmalloc.c:177
+#, c-format
+msgid "xrealloc: %s:%d: cannot allocate %lu bytes"
+msgstr "xrealloc: %s:%d: cannot allocate %lu bytes"
+
+#: builtins.c:244
+msgid "`alias' with no arguments or with the -p option prints the list"
+msgstr "‘\e[1malias\e[0m’ with no arguments or with the -p option prints the list"
+
+#: builtins.c:245
+msgid "of aliases in the form alias NAME=VALUE on standard output."
+msgstr "of aliases in the form alias NAME=VALUE on standard output."
+
+#: builtins.c:246
+msgid "Otherwise, an alias is defined for each NAME whose VALUE is given."
+msgstr "Otherwise, an alias is defined for each NAME whose VALUE is given."
+
+#: builtins.c:247
+msgid "A trailing space in VALUE causes the next word to be checked for"
+msgstr "A trailing space in VALUE causes the next word to be checked for"
+
+#: builtins.c:248
+msgid "alias substitution when the alias is expanded.  Alias returns"
+msgstr "alias substitution when the alias is expanded.  Alias returns"
+
+#: builtins.c:249
+msgid "true unless a NAME is given for which no alias has been defined."
+msgstr "true unless a NAME is given for which no alias has been defined."
+
+#: builtins.c:257
+msgid ""
+"Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+msgstr ""
+"Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+
+#: builtins.c:258
+msgid "then remove all alias definitions."
+msgstr "then remove all alias definitions."
+
+#: builtins.c:266
+msgid "Bind a key sequence to a Readline function or a macro, or set"
+msgstr "Bind a key sequence to a Readline function or a macro, or set"
+
+#: builtins.c:267
+msgid "a Readline variable.  The non-option argument syntax is equivalent"
+msgstr "a Readline variable.  The non-option argument syntax is equivalent"
+
+#: builtins.c:268
+msgid "to that found in ~/.inputrc, but must be passed as a single argument:"
+msgstr "to that found in ~/.inputrc, but must be passed as a single argument:"
+
+#: builtins.c:269
+msgid "bind '\"\\C-x\\C-r\": re-read-init-file'."
+msgstr "bind '“\e[1m\\C-x\\C-r\e[0m”: re-read-init-file'."
+
+#: builtins.c:270
+msgid "bind accepts the following options:"
+msgstr "bind accepts the following options:"
+
+#: builtins.c:271
+msgid ""
+"  -m  keymap         Use `keymap' as the keymap for the duration of this"
+msgstr ""
+"  -m  keymap         Use ‘\e[1mkeymap\e[0m’ as the keymap for the duration of "
+"this"
+
+#: builtins.c:272
+msgid "                     command.  Acceptable keymap names are emacs,"
+msgstr "                     command.  Acceptable keymap names are emacs,"
+
+#: builtins.c:273
+msgid ""
+"                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+msgstr ""
+"                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+
+#: builtins.c:274
+msgid "                     vi-command, and vi-insert."
+msgstr "                     vi-command, and vi-insert."
+
+#: builtins.c:275
+msgid "  -l                 List names of functions."
+msgstr "  -l                 List names of functions."
+
+#: builtins.c:276
+msgid "  -P                 List function names and bindings."
+msgstr "  -P                 List function names and bindings."
+
+#: builtins.c:277
+msgid "  -p                 List functions and bindings in a form that can be"
+msgstr "  -p                 List functions and bindings in a form that can be"
+
+#: builtins.c:278
+msgid "                     reused as input."
+msgstr "                     reused as input."
+
+#: builtins.c:279
+msgid "  -r  keyseq         Remove the binding for KEYSEQ."
+msgstr "  -r  keyseq         Remove the binding for KEYSEQ."
+
+#: builtins.c:280
+msgid "  -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when"
+msgstr "  -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when"
+
+#: builtins.c:281
+msgid "\t\t\t\tKEYSEQ is entered."
+msgstr "\t\t\t\tKEYSEQ is entered."
+
+#: builtins.c:282
+msgid "  -f  filename       Read key bindings from FILENAME."
+msgstr "  -f  filename       Read key bindings from FILENAME."
+
+#: builtins.c:283
+msgid "  -q  function-name  Query about which keys invoke the named function."
+msgstr "  -q  function-name  Query about which keys invoke the named function."
+
+#: builtins.c:284
+msgid ""
+"  -u  function-name  Unbind all keys which are bound to the named function."
+msgstr ""
+"  -u  function-name  Unbind all keys which are bound to the named function."
+
+#: builtins.c:285
+msgid "  -V                 List variable names and values"
+msgstr "  -V                 List variable names and values"
+
+#: builtins.c:286
+msgid "  -v                 List variable names and values in a form that can"
+msgstr "  -v                 List variable names and values in a form that can"
+
+#: builtins.c:287
+msgid "                     be reused as input."
+msgstr "                     be reused as input."
+
+#: builtins.c:288
+msgid ""
+"  -S                 List key sequences that invoke macros and their values"
+msgstr ""
+"  -S                 List key sequences that invoke macros and their values"
+
+#: builtins.c:289
+msgid ""
+"  -s                 List key sequences that invoke macros and their values"
+msgstr ""
+"  -s                 List key sequences that invoke macros and their values"
+
+#: builtins.c:290
+msgid "                     in a form that can be reused as input."
+msgstr "                     in a form that can be reused as input."
+
+#: builtins.c:297
+msgid "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,"
+msgstr "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,"
+
+#: builtins.c:298
+msgid "break N levels."
+msgstr "break N levels."
+
+#: builtins.c:304
+msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop."
+msgstr "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop."
+
+#: builtins.c:305
+msgid "If N is specified, resume at the N-th enclosing loop."
+msgstr "If N is specified, resume at the N-th enclosing loop."
+
+#: builtins.c:311
+msgid "Run a shell builtin.  This is useful when you wish to rename a"
+msgstr "Run a shell builtin.  This is useful when you wish to rename a"
+
+#: builtins.c:312
+msgid "shell builtin to be a function, but need the functionality of the"
+msgstr "shell builtin to be a function, but need the functionality of the"
+
+#: builtins.c:313
+msgid "builtin within the function itself."
+msgstr "builtin within the function itself."
+
+#: builtins.c:334
+msgid "Change the current directory to DIR.  The variable $HOME is the"
+msgstr "Change the current directory to DIR.  The variable $HOME is the"
+
+#: builtins.c:335
+msgid "default DIR.  The variable CDPATH defines the search path for"
+msgstr "default DIR.  The variable CDPATH defines the search path for"
+
+#: builtins.c:336
+msgid "the directory containing DIR.  Alternative directory names in CDPATH"
+msgstr "the directory containing DIR.  Alternative directory names in CDPATH"
+
+#: builtins.c:337
+msgid "are separated by a colon (:).  A null directory name is the same as"
+msgstr "are separated by a colon (:).  A null directory name is the same as"
+
+#: builtins.c:338
+msgid "the current directory, i.e. `.'.  If DIR begins with a slash (/),"
+msgstr ""
+"the current directory, i.e. ‘\e[1m.\e[0m’.  If DIR begins with a slash (/),"
+
+#: builtins.c:339
+msgid "then CDPATH is not used.  If the directory is not found, and the"
+msgstr "then CDPATH is not used.  If the directory is not found, and the"
+
+#: builtins.c:340
+msgid "shell option `cdable_vars' is set, then try the word as a variable"
+msgstr ""
+"shell option ‘\e[1mcdable_vars\e[0m’ is set, then try the word as a variable"
+
+#: builtins.c:341
+msgid "name.  If that variable has a value, then cd to the value of that"
+msgstr "name.  If that variable has a value, then cd to the value of that"
+
+#: builtins.c:342
+msgid "variable.  The -P option says to use the physical directory structure"
+msgstr "variable.  The -P option says to use the physical directory structure"
+
+#: builtins.c:343
+msgid ""
+"instead of following symbolic links; the -L option forces symbolic links"
+msgstr ""
+"instead of following symbolic links; the -L option forces symbolic links"
+
+#: builtins.c:344
+msgid "to be followed."
+msgstr "to be followed."
+
+#: builtins.c:350
+msgid "Print the current working directory.  With the -P option, pwd prints"
+msgstr "Print the current working directory.  With the -P option, pwd prints"
+
+#: builtins.c:351
+msgid "the physical directory, without any symbolic links; the -L option"
+msgstr "the physical directory, without any symbolic links; the -L option"
+
+#: builtins.c:352
+msgid "makes pwd follow symbolic links."
+msgstr "makes pwd follow symbolic links."
+
+#: builtins.c:358
+msgid "No effect; the command does nothing.  A zero exit code is returned."
+msgstr "No effect; the command does nothing.  A zero exit code is returned."
+
+#: builtins.c:364
+msgid "Return a successful result."
+msgstr "Return a successful result."
+
+#: builtins.c:370
+msgid "Return an unsuccessful result."
+msgstr "Return an unsuccessful result."
+
+#: builtins.c:376
+msgid "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+msgstr "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+
+#: builtins.c:377
+msgid "function called `ls', and you wish to call the command `ls', you can"
+msgstr ""
+"function called ‘\e[1mls\e[0m’, and you wish to call the command ‘\e[1mls\e[0m’, you "
+"can"
+
+#: builtins.c:378
+msgid "say \"command ls\".  If the -p option is given, a default value is used"
+msgstr ""
+"say “\e[1mcommand ls\e[0m”.  If the -p option is given, a default value is used"
+
+#: builtins.c:379
+msgid "for PATH that is guaranteed to find all of the standard utilities.  If"
+msgstr "for PATH that is guaranteed to find all of the standard utilities.  If"
+
+#: builtins.c:380
+msgid "the -V or -v option is given, a string is printed describing COMMAND."
+msgstr "the -V or -v option is given, a string is printed describing COMMAND."
+
+#: builtins.c:381
+msgid "The -V option produces a more verbose description."
+msgstr "The -V option produces a more verbose description."
+
+#: builtins.c:387
+msgid "Declare variables and/or give them attributes.  If no NAMEs are"
+msgstr "Declare variables and/or give them attributes.  If no NAMEs are"
+
+#: builtins.c:388
+msgid "given, then display the values of variables instead.  The -p option"
+msgstr "given, then display the values of variables instead.  The -p option"
+
+#: builtins.c:389
+msgid "will display the attributes and values of each NAME."
+msgstr "will display the attributes and values of each NAME."
+
+#: builtins.c:391
+msgid "The flags are:"
+msgstr "The flags are:"
+
+#: builtins.c:393
+msgid "  -a\tto make NAMEs arrays (if supported)"
+msgstr "  -a\tto make NAMEs arrays (if supported)"
+
+#: builtins.c:394
+msgid "  -f\tto select from among function names only"
+msgstr "  -f\tto select from among function names only"
+
+#: builtins.c:395
+msgid ""
+"  -F\tto display function names (and line number and source file name if"
+msgstr ""
+"  -F\tto display function names (and line number and source file name if"
+
+#: builtins.c:396
+msgid "\tdebugging) without definitions"
+msgstr "\tdebugging) without definitions"
+
+#: builtins.c:397
+msgid "  -i\tto make NAMEs have the `integer' attribute"
+msgstr "  -i\tto make NAMEs have the ‘\e[1minteger\e[0m’ attribute"
+
+#: builtins.c:398
+msgid "  -r\tto make NAMEs readonly"
+msgstr "  -r\tto make NAMEs readonly"
+
+#: builtins.c:399
+msgid "  -t\tto make NAMEs have the `trace' attribute"
+msgstr "  -t\tto make NAMEs have the ‘\e[1mtrace\e[0m’ attribute"
+
+#: builtins.c:400
+msgid "  -x\tto make NAMEs export"
+msgstr "  -x\tto make NAMEs export"
+
+#: builtins.c:402
+msgid "Variables with the integer attribute have arithmetic evaluation (see"
+msgstr "Variables with the integer attribute have arithmetic evaluation (see"
+
+#: builtins.c:403
+msgid "`let') done when the variable is assigned to."
+msgstr "‘\e[1mlet\e[0m’) done when the variable is assigned to."
+
+#: builtins.c:405
+msgid "When displaying values of variables, -f displays a function's name"
+msgstr "When displaying values of variables, -f displays a function's name"
+
+#: builtins.c:406
+msgid "and definition.  The -F option restricts the display to function"
+msgstr "and definition.  The -F option restricts the display to function"
+
+#: builtins.c:407
+msgid "name only."
+msgstr "name only."
+
+#: builtins.c:409
+msgid "Using `+' instead of `-' turns off the given attribute instead.  When"
+msgstr ""
+"Using ‘\e[1m+\e[0m’ instead of ‘\e[1m-\e[0m’ turns off the given attribute instead.  "
+"When"
+
+#: builtins.c:410
+msgid "used in a function, makes NAMEs local, as with the `local' command."
+msgstr ""
+"used in a function, makes NAMEs local, as with the ‘\e[1mlocal\e[0m’ command."
+
+#: builtins.c:416
+msgid "Obsolete.  See `declare'."
+msgstr "Obsolete.  See ‘\e[1mdeclare\e[0m’."
+
+#: builtins.c:422
+msgid "Create a local variable called NAME, and give it VALUE.  LOCAL"
+msgstr "Create a local variable called NAME, and give it VALUE.  LOCAL"
+
+#: builtins.c:423
+msgid "can only be used within a function; it makes the variable NAME"
+msgstr "can only be used within a function; it makes the variable NAME"
+
+#: builtins.c:424
+msgid "have a visible scope restricted to that function and its children."
+msgstr "have a visible scope restricted to that function and its children."
+
+#: builtins.c:431
+msgid "Output the ARGs.  If -n is specified, the trailing newline is"
+msgstr "Output the ARGs.  If -n is specified, the trailing newline is"
+
+#: builtins.c:432
+msgid "suppressed.  If the -e option is given, interpretation of the"
+msgstr "suppressed.  If the -e option is given, interpretation of the"
+
+#: builtins.c:433
+msgid "following backslash-escaped characters is turned on:"
+msgstr "following backslash-escaped characters is turned on:"
+
+#: builtins.c:434
+msgid "\t\\a\talert (bell)"
+msgstr "\t\\a\talert (bell)"
+
+#: builtins.c:435
+msgid "\t\\b\tbackspace"
+msgstr "\t\\b\tbackspace"
+
+#: builtins.c:436
+msgid "\t\\c\tsuppress trailing newline"
+msgstr "\t\\c\tsuppress trailing newline"
+
+#: builtins.c:437
+msgid "\t\\E\tescape character"
+msgstr "\t\\E\tescape character"
+
+#: builtins.c:438
+msgid "\t\\f\tform feed"
+msgstr "\t\\f\tform feed"
+
+#: builtins.c:439
+msgid "\t\\n\tnew line"
+msgstr "\t\\n\tnew line"
+
+#: builtins.c:440
+msgid "\t\\r\tcarriage return"
+msgstr "\t\\r\tcarriage return"
+
+#: builtins.c:441
+msgid "\t\\t\thorizontal tab"
+msgstr "\t\\t\thorizontal tab"
+
+#: builtins.c:442
+msgid "\t\\v\tvertical tab"
+msgstr "\t\\v\tvertical tab"
+
+#: builtins.c:443
+msgid "\t\\\\\tbackslash"
+msgstr "\t\\\\\tbackslash"
+
+#: builtins.c:444
+msgid "\t\\num\tthe character whose ASCII code is NUM (octal)."
+msgstr "\t\\num\tthe character whose ASCII code is NUM (octal)."
+
+#: builtins.c:446
+msgid "You can explicitly turn off the interpretation of the above characters"
+msgstr "You can explicitly turn off the interpretation of the above characters"
+
+#: builtins.c:447
+msgid "with the -E option."
+msgstr "with the -E option."
+
+#: builtins.c:455
+msgid ""
+"Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+msgstr ""
+"Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+
+#: builtins.c:462
+msgid "Enable and disable builtin shell commands.  This allows"
+msgstr "Enable and disable builtin shell commands.  This allows"
+
+#: builtins.c:463
+msgid "you to use a disk command which has the same name as a shell"
+msgstr "you to use a disk command which has the same name as a shell"
+
+#: builtins.c:464
+msgid "builtin without specifying a full pathname.  If -n is used, the"
+msgstr "builtin without specifying a full pathname.  If -n is used, the"
+
+#: builtins.c:465
+msgid "NAMEs become disabled; otherwise NAMEs are enabled.  For example,"
+msgstr "NAMEs become disabled; otherwise NAMEs are enabled.  For example,"
+
+#: builtins.c:466
+msgid "to use the `test' found in $PATH instead of the shell builtin"
+msgstr "to use the ‘\e[1mtest\e[0m’ found in $PATH instead of the shell builtin"
+
+#: builtins.c:467
+msgid "version, type `enable -n test'.  On systems supporting dynamic"
+msgstr "version, type ‘\e[1menable -n test\e[0m’.  On systems supporting dynamic"
+
+#: builtins.c:468
+msgid "loading, the -f option may be used to load new builtins from the"
+msgstr "loading, the -f option may be used to load new builtins from the"
+
+#: builtins.c:469
+msgid "shared object FILENAME.  The -d option will delete a builtin"
+msgstr "shared object FILENAME.  The -d option will delete a builtin"
+
+#: builtins.c:470
+msgid "previously loaded with -f.  If no non-option names are given, or"
+msgstr "previously loaded with -f.  If no non-option names are given, or"
+
+#: builtins.c:471
+msgid "the -p option is supplied, a list of builtins is printed.  The"
+msgstr "the -p option is supplied, a list of builtins is printed.  The"
+
+#: builtins.c:472
+msgid "-a option means to print every builtin with an indication of whether"
+msgstr "-a option means to print every builtin with an indication of whether"
+
+#: builtins.c:473
+msgid ""
+"or not it is enabled.  The -s option restricts the output to the POSIX.2"
+msgstr ""
+"or not it is enabled.  The -s option restricts the output to the POSIX.2"
+
+#: builtins.c:474
+msgid ""
+"`special' builtins.  The -n option displays a list of all disabled builtins."
+msgstr ""
+"‘\e[1mspecial\e[0m’ builtins.  The -n option displays a list of all disabled "
+"builtins."
+
+#: builtins.c:480
+msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+msgstr "Read ARGs as input to the shell and execute the resulting command(s)."
+
+#: builtins.c:486
+msgid "Getopts is used by shell procedures to parse positional parameters."
+msgstr "Getopts is used by shell procedures to parse positional parameters."
+
+#: builtins.c:488
+msgid "OPTSTRING contains the option letters to be recognized; if a letter"
+msgstr "OPTSTRING contains the option letters to be recognized; if a letter"
+
+#: builtins.c:489
+msgid "is followed by a colon, the option is expected to have an argument,"
+msgstr "is followed by a colon, the option is expected to have an argument,"
+
+#: builtins.c:490
+msgid "which should be separated from it by white space."
+msgstr "which should be separated from it by white space."
+
+#: builtins.c:492
+msgid "Each time it is invoked, getopts will place the next option in the"
+msgstr "Each time it is invoked, getopts will place the next option in the"
+
+#: builtins.c:493
+msgid "shell variable $name, initializing name if it does not exist, and"
+msgstr "shell variable $name, initializing name if it does not exist, and"
+
+#: builtins.c:494
+msgid "the index of the next argument to be processed into the shell"
+msgstr "the index of the next argument to be processed into the shell"
+
+#: builtins.c:495
+msgid "variable OPTIND.  OPTIND is initialized to 1 each time the shell or"
+msgstr "variable OPTIND.  OPTIND is initialized to 1 each time the shell or"
+
+#: builtins.c:496
+msgid "a shell script is invoked.  When an option requires an argument,"
+msgstr "a shell script is invoked.  When an option requires an argument,"
+
+#: builtins.c:497
+msgid "getopts places that argument into the shell variable OPTARG."
+msgstr "getopts places that argument into the shell variable OPTARG."
+
+#: builtins.c:499
+msgid "getopts reports errors in one of two ways.  If the first character"
+msgstr "getopts reports errors in one of two ways.  If the first character"
+
+#: builtins.c:500
+msgid "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
+msgstr "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
+
+#: builtins.c:501
+msgid "this mode, no error messages are printed.  If an invalid option is"
+msgstr "this mode, no error messages are printed.  If an invalid option is"
+
+#: builtins.c:502
+msgid "seen, getopts places the option character found into OPTARG.  If a"
+msgstr "seen, getopts places the option character found into OPTARG.  If a"
+
+#: builtins.c:503
+msgid "required argument is not found, getopts places a ':' into NAME and"
+msgstr ""
+"required argument is not found, getopts places a ‘\e[1m:\e[0m’ into NAME and"
+
+#: builtins.c:504
+msgid "sets OPTARG to the option character found.  If getopts is not in"
+msgstr "sets OPTARG to the option character found.  If getopts is not in"
+
+#: builtins.c:505
+msgid "silent mode, and an invalid option is seen, getopts places '?' into"
+msgstr ""
+"silent mode, and an invalid option is seen, getopts places ‘\e[1m?\e[0m’ into"
+
+#: builtins.c:506
+msgid "NAME and unsets OPTARG.  If a required argument is not found, a '?'"
+msgstr ""
+"NAME and unsets OPTARG.  If a required argument is not found, a ‘\e[1m?\e[0m’"
+
+#: builtins.c:507
+msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is"
+msgstr "is placed in NAME, OPTARG is unset, and a diagnostic message is"
+
+#: builtins.c:508
+msgid "printed."
+msgstr "printed."
+
+#: builtins.c:510
+msgid "If the shell variable OPTERR has the value 0, getopts disables the"
+msgstr "If the shell variable OPTERR has the value 0, getopts disables the"
+
+#: builtins.c:511
+msgid "printing of error messages, even if the first character of"
+msgstr "printing of error messages, even if the first character of"
+
+#: builtins.c:512
+msgid "OPTSTRING is not a colon.  OPTERR has the value 1 by default."
+msgstr "OPTSTRING is not a colon.  OPTERR has the value 1 by default."
+
+#: builtins.c:514
+msgid "Getopts normally parses the positional parameters ($0 - $9), but if"
+msgstr "Getopts normally parses the positional parameters ($0 - $9), but if"
+
+#: builtins.c:515
+msgid "more arguments are given, they are parsed instead."
+msgstr "more arguments are given, they are parsed instead."
+
+#: builtins.c:521
+msgid "Exec FILE, replacing this shell with the specified program."
+msgstr "Exec FILE, replacing this shell with the specified program."
+
+#: builtins.c:522
+msgid "If FILE is not specified, the redirections take effect in this"
+msgstr "If FILE is not specified, the redirections take effect in this"
+
+#: builtins.c:523
+msgid "shell.  If the first argument is `-l', then place a dash in the"
+msgstr "shell.  If the first argument is ‘\e[1m-l\e[0m’, then place a dash in the"
+
+#: builtins.c:524
+msgid "zeroth arg passed to FILE, as login does.  If the `-c' option"
+msgstr "zeroth arg passed to FILE, as login does.  If the ‘\e[1m-c\e[0m’ option"
+
+#: builtins.c:525
+msgid "is supplied, FILE is executed with a null environment.  The `-a'"
+msgstr "is supplied, FILE is executed with a null environment.  The ‘\e[1m-a\e[0m’"
+
+#: builtins.c:526
+msgid "option means to make set argv[0] of the executed process to NAME."
+msgstr "option means to make set argv[0] of the executed process to NAME."
+
+#: builtins.c:527
+msgid "If the file cannot be executed and the shell is not interactive,"
+msgstr "If the file cannot be executed and the shell is not interactive,"
+
+#: builtins.c:528
+msgid "then the shell exits, unless the shell option `execfail' is set."
+msgstr "then the shell exits, unless the shell option ‘\e[1mexecfail\e[0m’ is set."
+
+#: builtins.c:534
+msgid "Exit the shell with a status of N.  If N is omitted, the exit status"
+msgstr "Exit the shell with a status of N.  If N is omitted, the exit status"
+
+#: builtins.c:535
+msgid "is that of the last command executed."
+msgstr "is that of the last command executed."
+
+#: builtins.c:541
+msgid "Logout of a login shell."
+msgstr "Logout of a login shell."
+
+#: builtins.c:548
+msgid ""
+"fc is used to list or edit and re-execute commands from the history list."
+msgstr ""
+"fc is used to list or edit and re-execute commands from the history list."
+
+#: builtins.c:549
+msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+msgstr "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+
+#: builtins.c:550
+msgid "string, which means the most recent command beginning with that"
+msgstr "string, which means the most recent command beginning with that"
+
+#: builtins.c:551
+msgid "string."
+msgstr "string."
+
+#: builtins.c:553
+msgid ""
+"   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+msgstr ""
+"   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+
+#: builtins.c:554
+msgid "      then vi."
+msgstr "      then vi."
+
+#: builtins.c:556
+msgid "   -l means list lines instead of editing."
+msgstr "   -l means list lines instead of editing."
+
+#: builtins.c:557
+msgid "   -n means no line numbers listed."
+msgstr "   -n means no line numbers listed."
+
+#: builtins.c:558
+msgid ""
+"   -r means reverse the order of the lines (making it newest listed first)."
+msgstr ""
+"   -r means reverse the order of the lines (making it newest listed first)."
+
+#: builtins.c:560
+msgid "With the `fc -s [pat=rep ...] [command]' format, the command is"
+msgstr "With the ‘\e[1mfc -s [pat=rep ...] [command]\e[0m’ format, the command is"
+
+#: builtins.c:561
+msgid "re-executed after the substitution OLD=NEW is performed."
+msgstr "re-executed after the substitution OLD=NEW is performed."
+
+#: builtins.c:563
+msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'"
+msgstr ""
+"A useful alias to use with this is r='fc -s', so that typing ‘\e[1mr cc\e[0m’"
+
+#: builtins.c:564
+msgid "runs the last command beginning with `cc' and typing `r' re-executes"
+msgstr ""
+"runs the last command beginning with ‘\e[1mcc\e[0m’ and typing ‘\e[1mr\e[0m’ re-"
+"executes"
+
+#: builtins.c:565
+msgid "the last command."
+msgstr "the last command."
+
+#: builtins.c:573
+msgid "Place JOB_SPEC in the foreground, and make it the current job.  If"
+msgstr "Place JOB_SPEC in the foreground, and make it the current job.  If"
+
+#: builtins.c:574
+msgid "JOB_SPEC is not present, the shell's notion of the current job is"
+msgstr "JOB_SPEC is not present, the shell's notion of the current job is"
+
+#: builtins.c:575
+msgid "used."
+msgstr "used."
+
+#: builtins.c:583
+msgid "Place JOB_SPEC in the background, as if it had been started with"
+msgstr "Place JOB_SPEC in the background, as if it had been started with"
+
+#: builtins.c:584
+msgid "`&'.  If JOB_SPEC is not present, the shell's notion of the current"
+msgstr ""
+"‘\e[1m&\e[0m’.  If JOB_SPEC is not present, the shell's notion of the current"
+
+#: builtins.c:585
+msgid "job is used."
+msgstr "job is used."
+
+#: builtins.c:592
+msgid "For each NAME, the full pathname of the command is determined and"
+msgstr "For each NAME, the full pathname of the command is determined and"
+
+#: builtins.c:593
+msgid "remembered.  If the -p option is supplied, PATHNAME is used as the"
+msgstr "remembered.  If the -p option is supplied, PATHNAME is used as the"
+
+#: builtins.c:594
+msgid "full pathname of NAME, and no path search is performed.  The -r"
+msgstr "full pathname of NAME, and no path search is performed.  The -r"
+
+#: builtins.c:595
+msgid "option causes the shell to forget all remembered locations.  The -d"
+msgstr "option causes the shell to forget all remembered locations.  The -d"
+
+#: builtins.c:596
+msgid "option causes the shell to forget the remembered location of each NAME."
+msgstr ""
+"option causes the shell to forget the remembered location of each NAME."
+
+#: builtins.c:597
+msgid "If the -t option is supplied the full pathname to which each NAME"
+msgstr "If the -t option is supplied the full pathname to which each NAME"
+
+#: builtins.c:598
+msgid "corresponds is printed.  If multiple NAME arguments are supplied with"
+msgstr "corresponds is printed.  If multiple NAME arguments are supplied with"
+
+#: builtins.c:599
+msgid "-t, the NAME is printed before the hashed full pathname.  The -l option"
+msgstr ""
+"-t, the NAME is printed before the hashed full pathname.  The -l option"
+
+#: builtins.c:600
+msgid "causes output to be displayed in a format that may be reused as input."
+msgstr "causes output to be displayed in a format that may be reused as input."
+
+#: builtins.c:601
+msgid ""
+"If no arguments are given, information about remembered commands is "
+"displayed."
+msgstr ""
+"If no arguments are given, information about remembered commands is "
+"displayed."
+
+#: builtins.c:608
+msgid "Display helpful information about builtin commands.  If PATTERN is"
+msgstr "Display helpful information about builtin commands.  If PATTERN is"
+
+#: builtins.c:609
+msgid "specified, gives detailed help on all commands matching PATTERN,"
+msgstr "specified, gives detailed help on all commands matching PATTERN,"
+
+#: builtins.c:610
+msgid "otherwise a list of the builtins is printed.  The -s option"
+msgstr "otherwise a list of the builtins is printed.  The -s option"
+
+#: builtins.c:611
+msgid "restricts the output for each builtin command matching PATTERN to"
+msgstr "restricts the output for each builtin command matching PATTERN to"
+
+#: builtins.c:612
+msgid "a short usage synopsis."
+msgstr "a short usage synopsis."
+
+#: builtins.c:620
+msgid "Display the history list with line numbers.  Lines listed with"
+msgstr "Display the history list with line numbers.  Lines listed with"
+
+#: builtins.c:621
+msgid "with a `*' have been modified.  Argument of N says to list only"
+msgstr "with a ‘\e[1m*\e[0m’ have been modified.  Argument of N says to list only"
+
+#: builtins.c:622
+msgid "the last N lines.  The `-c' option causes the history list to be"
+msgstr "the last N lines.  The ‘\e[1m-c\e[0m’ option causes the history list to be"
+
+#: builtins.c:623
+msgid "cleared by deleting all of the entries.  The `-d' option deletes"
+msgstr "cleared by deleting all of the entries.  The ‘\e[1m-d\e[0m’ option deletes"
+
+#: builtins.c:624
+msgid "the history entry at offset OFFSET.  The `-w' option writes out the"
+msgstr ""
+"the history entry at offset OFFSET.  The ‘\e[1m-w\e[0m’ option writes out the"
+
+#: builtins.c:625
+msgid "current history to the history file;  `-r' means to read the file and"
+msgstr ""
+"current history to the history file;  ‘\e[1m-r\e[0m’ means to read the file and"
+
+#: builtins.c:626
+msgid "append the contents to the history list instead.  `-a' means"
+msgstr "append the contents to the history list instead.  ‘\e[1m-a\e[0m’ means"
+
+#: builtins.c:627
+msgid "to append history lines from this session to the history file."
+msgstr "to append history lines from this session to the history file."
+
+#: builtins.c:628
+msgid "Argument `-n' means to read all history lines not already read"
+msgstr "Argument ‘\e[1m-n\e[0m’ means to read all history lines not already read"
+
+#: builtins.c:629
+msgid "from the history file and append them to the history list."
+msgstr "from the history file and append them to the history list."
+
+#: builtins.c:631
+msgid "If FILENAME is given, then that is used as the history file else"
+msgstr "If FILENAME is given, then that is used as the history file else"
+
+#: builtins.c:632
+msgid "if $HISTFILE has a value, that is used, else ~/.bash_history."
+msgstr "if $HISTFILE has a value, that is used, else ~/.bash_history."
+
+#: builtins.c:633
+msgid "If the -s option is supplied, the non-option ARGs are appended to"
+msgstr "If the -s option is supplied, the non-option ARGs are appended to"
+
+#: builtins.c:634
+msgid "the history list as a single entry.  The -p option means to perform"
+msgstr "the history list as a single entry.  The -p option means to perform"
+
+#: builtins.c:635
+msgid "history expansion on each ARG and display the result, without storing"
+msgstr "history expansion on each ARG and display the result, without storing"
+
+#: builtins.c:636
+msgid "anything in the history list."
+msgstr "anything in the history list."
+
+#: builtins.c:638
+msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used"
+msgstr "If the $HISTTIMEFORMAT variable is set and not null, its value is used"
+
+#: builtins.c:639
+msgid "as a format string for strftime(3) to print the time stamp associated"
+msgstr "as a format string for strftime(3) to print the time stamp associated"
+
+#: builtins.c:640
+msgid ""
+"with each displayed history entry.  No time stamps are printed otherwise."
+msgstr ""
+"with each displayed history entry.  No time stamps are printed otherwise."
+
+#: builtins.c:648
+msgid "Lists the active jobs.  The -l option lists process id's in addition"
+msgstr "Lists the active jobs.  The -l option lists process id's in addition"
+
+#: builtins.c:649
+msgid "to the normal information; the -p option lists process id's only."
+msgstr "to the normal information; the -p option lists process id's only."
+
+#: builtins.c:650
+msgid "If -n is given, only processes that have changed status since the last"
+msgstr "If -n is given, only processes that have changed status since the last"
+
+#: builtins.c:651
+msgid "notification are printed.  JOBSPEC restricts output to that job.  The"
+msgstr "notification are printed.  JOBSPEC restricts output to that job.  The"
+
+#: builtins.c:652
+msgid "-r and -s options restrict output to running and stopped jobs only,"
+msgstr "-r and -s options restrict output to running and stopped jobs only,"
+
+#: builtins.c:653
+msgid "respectively.  Without options, the status of all active jobs is"
+msgstr "respectively.  Without options, the status of all active jobs is"
+
+#: builtins.c:654
+msgid "printed.  If -x is given, COMMAND is run after all job specifications"
+msgstr "printed.  If -x is given, COMMAND is run after all job specifications"
+
+#: builtins.c:655
+msgid ""
+"that appear in ARGS have been replaced with the process ID of that job's"
+msgstr ""
+"that appear in ARGS have been replaced with the process ID of that job's"
+
+#: builtins.c:656
+msgid "process group leader."
+msgstr "process group leader."
+
+#: builtins.c:664
+msgid ""
+"By default, removes each JOBSPEC argument from the table of active jobs."
+msgstr ""
+"By default, removes each JOBSPEC argument from the table of active jobs."
+
+#: builtins.c:665
+msgid ""
+"If the -h option is given, the job is not removed from the table, but is"
+msgstr ""
+"If the -h option is given, the job is not removed from the table, but is"
+
+#: builtins.c:666
+msgid "marked so that SIGHUP is not sent to the job if the shell receives a"
+msgstr "marked so that SIGHUP is not sent to the job if the shell receives a"
+
+#: builtins.c:667
+msgid ""
+"SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all"
+msgstr ""
+"SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all"
+
+#: builtins.c:668
+msgid ""
+"jobs from the job table; the -r option means to remove only running jobs."
+msgstr ""
+"jobs from the job table; the -r option means to remove only running jobs."
+
+#: builtins.c:675
+msgid "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
+msgstr "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
+
+#: builtins.c:676
+msgid "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
+msgstr ""
+"SIGSPEC is not present, then SIGTERM is assumed.  An argument of ‘\e[1m-l\e[0m’"
+
+#: builtins.c:677
+msgid "lists the signal names; if arguments follow `-l' they are assumed to"
+msgstr ""
+"lists the signal names; if arguments follow ‘\e[1m-l\e[0m’ they are assumed to"
+
+#: builtins.c:678
+msgid "be signal numbers for which names should be listed.  Kill is a shell"
+msgstr "be signal numbers for which names should be listed.  Kill is a shell"
+
+#: builtins.c:679
+msgid "builtin for two reasons: it allows job IDs to be used instead of"
+msgstr "builtin for two reasons: it allows job IDs to be used instead of"
+
+#: builtins.c:680
+msgid "process IDs, and, if you have reached the limit on processes that"
+msgstr "process IDs, and, if you have reached the limit on processes that"
+
+#: builtins.c:681
+msgid "you can create, you don't have to start a process to kill another one."
+msgstr "you can create, you don't have to start a process to kill another one."
+
+#: builtins.c:687
+msgid "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
+msgstr "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
+
+#: builtins.c:688
+msgid "is done in fixed-width integers with no check for overflow, though"
+msgstr "is done in fixed-width integers with no check for overflow, though"
+
+#: builtins.c:689
+msgid "division by 0 is trapped and flagged as an error.  The following"
+msgstr "division by 0 is trapped and flagged as an error.  The following"
+
+#: builtins.c:690
+msgid "list of operators is grouped into levels of equal-precedence operators."
+msgstr ""
+"list of operators is grouped into levels of equal-precedence operators."
+
+#: builtins.c:691
+msgid "The levels are listed in order of decreasing precedence."
+msgstr "The levels are listed in order of decreasing precedence."
+
+#: builtins.c:693
+msgid "\tid++, id--\tvariable post-increment, post-decrement"
+msgstr "\tid++, id--\tvariable post-increment, post-decrement"
+
+#: builtins.c:694
+msgid "\t++id, --id\tvariable pre-increment, pre-decrement"
+msgstr "\t++id, --id\tvariable pre-increment, pre-decrement"
+
+#: builtins.c:695
+msgid "\t-, +\t\tunary minus, plus"
+msgstr "\t-, +\t\tunary minus, plus"
+
+#: builtins.c:696
+msgid "\t!, ~\t\tlogical and bitwise negation"
+msgstr "\t!, ~\t\tlogical and bitwise negation"
+
+#: builtins.c:697
+msgid "\t**\t\texponentiation"
+msgstr "\t**\t\texponentiation"
+
+#: builtins.c:698
+msgid "\t*, /, %\t\tmultiplication, division, remainder"
+msgstr "\t*, /, %\t\tmultiplication, division, remainder"
+
+#: builtins.c:699
+msgid "\t+, -\t\taddition, subtraction"
+msgstr "\t+, -\t\taddition, subtraction"
+
+#: builtins.c:700
+msgid "\t<<, >>\t\tleft and right bitwise shifts"
+msgstr "\t<<, >>\t\tleft and right bitwise shifts"
+
+#: builtins.c:701
+msgid "\t<=, >=, <, >\tcomparison"
+msgstr "\t<=, >=, <, >\tcomparison"
+
+#: builtins.c:702
+msgid "\t==, !=\t\tequality, inequality"
+msgstr "\t==, !=\t\tequality, inequality"
+
+#: builtins.c:703
+msgid "\t&\t\tbitwise AND"
+msgstr "\t&\t\tbitwise AND"
+
+#: builtins.c:704
+msgid "\t^\t\tbitwise XOR"
+msgstr "\t^\t\tbitwise XOR"
+
+#: builtins.c:705
+msgid "\t|\t\tbitwise OR"
+msgstr "\t|\t\tbitwise OR"
+
+#: builtins.c:706
+msgid "\t&&\t\tlogical AND"
+msgstr "\t&&\t\tlogical AND"
+
+#: builtins.c:707
+msgid "\t||\t\tlogical OR"
+msgstr "\t||\t\tlogical OR"
+
+#: builtins.c:708
+msgid "\texpr ? expr : expr"
+msgstr "\texpr ? expr : expr"
+
+#: builtins.c:709
+msgid "\t\t\tconditional operator"
+msgstr "\t\t\tconditional operator"
+
+#: builtins.c:710
+msgid "\t=, *=, /=, %=,"
+msgstr "\t=, *=, /=, %=,"
+
+#: builtins.c:711
+msgid "\t+=, -=, <<=, >>=,"
+msgstr "\t+=, -=, <<=, >>=,"
+
+#: builtins.c:712
+msgid "\t&=, ^=, |=\tassignment"
+msgstr "\t&=, ^=, |=\tassignment"
+
+#: builtins.c:714
+msgid "Shell variables are allowed as operands.  The name of the variable"
+msgstr "Shell variables are allowed as operands.  The name of the variable"
+
+#: builtins.c:715
+msgid "is replaced by its value (coerced to a fixed-width integer) within"
+msgstr "is replaced by its value (coerced to a fixed-width integer) within"
+
+#: builtins.c:716
+msgid "an expression.  The variable need not have its integer attribute"
+msgstr "an expression.  The variable need not have its integer attribute"
+
+#: builtins.c:717
+msgid "turned on to be used in an expression."
+msgstr "turned on to be used in an expression."
+
+#: builtins.c:719
+msgid "Operators are evaluated in order of precedence.  Sub-expressions in"
+msgstr "Operators are evaluated in order of precedence.  Sub-expressions in"
+
+#: builtins.c:720
+msgid "parentheses are evaluated first and may override the precedence"
+msgstr "parentheses are evaluated first and may override the precedence"
+
+#: builtins.c:721
+msgid "rules above."
+msgstr "rules above."
+
+#: builtins.c:723
+msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned"
+msgstr "If the last ARG evaluates to 0, let returns 1; 0 is returned"
+
+#: builtins.c:724
+msgid "otherwise."
+msgstr "otherwise."
+
+#: builtins.c:730
+msgid ""
+"One line is read from the standard input, or from file descriptor FD if the"
+msgstr ""
+"One line is read from the standard input, or from file descriptor FD if the"
+
+#: builtins.c:731
+msgid ""
+"-u option is supplied, and the first word is assigned to the first NAME,"
+msgstr ""
+"-u option is supplied, and the first word is assigned to the first NAME,"
+
+#: builtins.c:732
+msgid ""
+"the second word to the second NAME, and so on, with leftover words assigned"
+msgstr ""
+"the second word to the second NAME, and so on, with leftover words assigned"
+
+#: builtins.c:733
+msgid ""
+"to the last NAME.  Only the characters found in $IFS are recognized as word"
+msgstr ""
+"to the last NAME.  Only the characters found in $IFS are recognized as word"
+
+#: builtins.c:734
+msgid ""
+"delimiters.  If no NAMEs are supplied, the line read is stored in the REPLY"
+msgstr ""
+"delimiters.  If no NAMEs are supplied, the line read is stored in the REPLY"
+
+#: builtins.c:735
+msgid "variable.  If the -r option is given, this signifies `raw' input, and"
+msgstr ""
+"variable.  If the -r option is given, this signifies ‘\e[1mraw\e[0m’ input, and"
+
+#: builtins.c:736
+msgid "backslash escaping is disabled.  The -d option causes read to continue"
+msgstr "backslash escaping is disabled.  The -d option causes read to continue"
+
+#: builtins.c:737
+msgid ""
+"until the first character of DELIM is read, rather than newline.  If the -p"
+msgstr ""
+"until the first character of DELIM is read, rather than newline.  If the -p"
+
+#: builtins.c:738
+msgid ""
+"option is supplied, the string PROMPT is output without a trailing newline"
+msgstr ""
+"option is supplied, the string PROMPT is output without a trailing newline"
+
+#: builtins.c:739
+msgid ""
+"before attempting to read.  If -a is supplied, the words read are assigned"
+msgstr ""
+"before attempting to read.  If -a is supplied, the words read are assigned"
+
+#: builtins.c:740
+msgid ""
+"to sequential indices of ARRAY, starting at zero.  If -e is supplied and"
+msgstr ""
+"to sequential indices of ARRAY, starting at zero.  If -e is supplied and"
+
+#: builtins.c:741
+msgid ""
+"the shell is interactive, readline is used to obtain the line.  If -n is"
+msgstr ""
+"the shell is interactive, readline is used to obtain the line.  If -n is"
+
+#: builtins.c:742
+msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS"
+msgstr "supplied with a non-zero NCHARS argument, read returns after NCHARS"
+
+#: builtins.c:743
+msgid "characters have been read.  The -s option causes input coming from a"
+msgstr "characters have been read.  The -s option causes input coming from a"
+
+#: builtins.c:744
+msgid "terminal to not be echoed."
+msgstr "terminal to not be echoed."
+
+#: builtins.c:746
+msgid ""
+"The -t option causes read to time out and return failure if a complete line"
+msgstr ""
+"The -t option causes read to time out and return failure if a complete line"
+
+#: builtins.c:747
+msgid ""
+"of input is not read within TIMEOUT seconds.  If the TMOUT variable is set,"
+msgstr ""
+"of input is not read within TIMEOUT seconds.  If the TMOUT variable is set,"
+
+#: builtins.c:748
+msgid ""
+"its value is the default timeout.  The return code is zero, unless end-of-"
+"file"
+msgstr ""
+"its value is the default timeout.  The return code is zero, unless end-of-"
+"file"
+
+#: builtins.c:749
+msgid ""
+"is encountered, read times out, or an invalid file descriptor is supplied as"
+msgstr ""
+"is encountered, read times out, or an invalid file descriptor is supplied as"
+
+#: builtins.c:750
+msgid "the argument to -u."
+msgstr "the argument to -u."
+
+#: builtins.c:756
+msgid "Causes a function to exit with the return value specified by N.  If N"
+msgstr "Causes a function to exit with the return value specified by N.  If N"
+
+#: builtins.c:757
+msgid "is omitted, the return status is that of the last command."
+msgstr "is omitted, the return status is that of the last command."
+
+#: builtins.c:763
+msgid "    -a  Mark variables which are modified or created for export."
+msgstr "    -a  Mark variables which are modified or created for export."
+
+#: builtins.c:764
+msgid "    -b  Notify of job termination immediately."
+msgstr "    -b  Notify of job termination immediately."
+
+#: builtins.c:765
+msgid "    -e  Exit immediately if a command exits with a non-zero status."
+msgstr "    -e  Exit immediately if a command exits with a non-zero status."
+
+#: builtins.c:766
+msgid "    -f  Disable file name generation (globbing)."
+msgstr "    -f  Disable file name generation (globbing)."
+
+#: builtins.c:767
+msgid "    -h  Remember the location of commands as they are looked up."
+msgstr "    -h  Remember the location of commands as they are looked up."
+
+#: builtins.c:768
+msgid "    -k  All assignment arguments are placed in the environment for a"
+msgstr "    -k  All assignment arguments are placed in the environment for a"
+
+#: builtins.c:769
+msgid "        command, not just those that precede the command name."
+msgstr "        command, not just those that precede the command name."
+
+#: builtins.c:770
+msgid "    -m  Job control is enabled."
+msgstr "    -m  Job control is enabled."
+
+#: builtins.c:771
+msgid "    -n  Read commands but do not execute them."
+msgstr "    -n  Read commands but do not execute them."
+
+#: builtins.c:772
+msgid "    -o option-name"
+msgstr "    -o option-name"
+
+#: builtins.c:773
+msgid "        Set the variable corresponding to option-name:"
+msgstr "        Set the variable corresponding to option-name:"
+
+#: builtins.c:774
+msgid "            allexport    same as -a"
+msgstr "            allexport    same as -a"
+
+#: builtins.c:775
+msgid "            braceexpand  same as -B"
+msgstr "            braceexpand  same as -B"
+
+#: builtins.c:777
+msgid "            emacs        use an emacs-style line editing interface"
+msgstr "            emacs        use an emacs-style line editing interface"
+
+#: builtins.c:779
+msgid "            errexit      same as -e"
+msgstr "            errexit      same as -e"
+
+#: builtins.c:780
+msgid "            errtrace     same as -E"
+msgstr "            errtrace     same as -E"
+
+#: builtins.c:781
+msgid "            functrace    same as -T"
+msgstr "            functrace    same as -T"
+
+#: builtins.c:782
+msgid "            hashall      same as -h"
+msgstr "            hashall      same as -h"
+
+#: builtins.c:784
+msgid "            histexpand   same as -H"
+msgstr "            histexpand   same as -H"
+
+#: builtins.c:787
+msgid "            history      enable command history"
+msgstr "            history      enable command history"
+
+#: builtins.c:789
+msgid "            ignoreeof    the shell will not exit upon reading EOF"
+msgstr "            ignoreeof    the shell will not exit upon reading EOF"
+
+#: builtins.c:790
+msgid "            interactive-comments"
+msgstr "            interactive-comments"
+
+#: builtins.c:791
+msgid ""
+"                         allow comments to appear in interactive commands"
+msgstr ""
+"                         allow comments to appear in interactive commands"
+
+#: builtins.c:792
+msgid "            keyword      same as -k"
+msgstr "            keyword      same as -k"
+
+#: builtins.c:793
+msgid "            monitor      same as -m"
+msgstr "            monitor      same as -m"
+
+#: builtins.c:794
+msgid "            noclobber    same as -C"
+msgstr "            noclobber    same as -C"
+
+#: builtins.c:795
+msgid "            noexec       same as -n"
+msgstr "            noexec       same as -n"
+
+#: builtins.c:796
+msgid "            noglob       same as -f"
+msgstr "            noglob       same as -f"
+
+#: builtins.c:797
+msgid "            nolog        currently accepted but ignored"
+msgstr "            nolog        currently accepted but ignored"
+
+#: builtins.c:798
+msgid "            notify       same as -b"
+msgstr "            notify       same as -b"
+
+#: builtins.c:799
+msgid "            nounset      same as -u"
+msgstr "            nounset      same as -u"
+
+#: builtins.c:800
+msgid "            onecmd       same as -t"
+msgstr "            onecmd       same as -t"
+
+#: builtins.c:801
+msgid "            physical     same as -P"
+msgstr "            physical     same as -P"
+
+#: builtins.c:802
+msgid ""
+"            pipefail     the return value of a pipeline is the status of"
+msgstr ""
+"            pipefail     the return value of a pipeline is the status of"
+
+#: builtins.c:803
+msgid ""
+"                         the last command to exit with a non-zero status,"
+msgstr ""
+"                         the last command to exit with a non-zero status,"
+
+#: builtins.c:804
+msgid ""
+"                         or zero if no command exited with a non-zero status"
+msgstr ""
+"                         or zero if no command exited with a non-zero status"
+
+#: builtins.c:805
+msgid "            posix        change the behavior of bash where the default"
+msgstr "            posix        change the behavior of bash where the default"
+
+#: builtins.c:806
+msgid "                         operation differs from the 1003.2 standard to"
+msgstr "                         operation differs from the 1003.2 standard to"
+
+#: builtins.c:807
+msgid "                         match the standard"
+msgstr "                         match the standard"
+
+#: builtins.c:808
+msgid "            privileged   same as -p"
+msgstr "            privileged   same as -p"
+
+#: builtins.c:809
+msgid "            verbose      same as -v"
+msgstr "            verbose      same as -v"
+
+#: builtins.c:811
+msgid "            vi           use a vi-style line editing interface"
+msgstr "            vi           use a vi-style line editing interface"
+
+#: builtins.c:813
+msgid "            xtrace       same as -x"
+msgstr "            xtrace       same as -x"
+
+#: builtins.c:814
+msgid ""
+"    -p  Turned on whenever the real and effective user ids do not match."
+msgstr ""
+"    -p  Turned on whenever the real and effective user ids do not match."
+
+#: builtins.c:815
+msgid "        Disables processing of the $ENV file and importing of shell"
+msgstr "        Disables processing of the $ENV file and importing of shell"
+
+#: builtins.c:816
+msgid ""
+"        functions.  Turning this option off causes the effective uid and"
+msgstr ""
+"        functions.  Turning this option off causes the effective uid and"
+
+#: builtins.c:817
+msgid "        gid to be set to the real uid and gid."
+msgstr "        gid to be set to the real uid and gid."
+
+#: builtins.c:818
+msgid "    -t  Exit after reading and executing one command."
+msgstr "    -t  Exit after reading and executing one command."
+
+#: builtins.c:819
+msgid "    -u  Treat unset variables as an error when substituting."
+msgstr "    -u  Treat unset variables as an error when substituting."
+
+#: builtins.c:820
+msgid "    -v  Print shell input lines as they are read."
+msgstr "    -v  Print shell input lines as they are read."
+
+#: builtins.c:821
+msgid "    -x  Print commands and their arguments as they are executed."
+msgstr "    -x  Print commands and their arguments as they are executed."
+
+#: builtins.c:823
+msgid "    -B  the shell will perform brace expansion"
+msgstr "    -B  the shell will perform brace expansion"
+
+#: builtins.c:825
+msgid "    -C  If set, disallow existing regular files to be overwritten"
+msgstr "    -C  If set, disallow existing regular files to be overwritten"
+
+#: builtins.c:826
+msgid "        by redirection of output."
+msgstr "        by redirection of output."
+
+#: builtins.c:827
+msgid "    -E  If set, the ERR trap is inherited by shell functions."
+msgstr "    -E  If set, the ERR trap is inherited by shell functions."
+
+#: builtins.c:829
+msgid "    -H  Enable ! style history substitution.  This flag is on"
+msgstr "    -H  Enable ! style history substitution.  This flag is on"
+
+#: builtins.c:830
+msgid "        by default."
+msgstr "        by default."
+
+#: builtins.c:832
+msgid "    -P  If set, do not follow symbolic links when executing commands"
+msgstr "    -P  If set, do not follow symbolic links when executing commands"
+
+#: builtins.c:833
+msgid "        such as cd which change the current directory."
+msgstr "        such as cd which change the current directory."
+
+#: builtins.c:834
+msgid "    -T  If set, the DEBUG trap is inherited by shell functions."
+msgstr "    -T  If set, the DEBUG trap is inherited by shell functions."
+
+#: builtins.c:836
+msgid "Using + rather than - causes these flags to be turned off.  The"
+msgstr "Using + rather than - causes these flags to be turned off.  The"
+
+#: builtins.c:837
+msgid "flags can also be used upon invocation of the shell.  The current"
+msgstr "flags can also be used upon invocation of the shell.  The current"
+
+#: builtins.c:838
+msgid "set of flags may be found in $-.  The remaining n ARGs are positional"
+msgstr "set of flags may be found in $-.  The remaining n ARGs are positional"
+
+#: builtins.c:839
+msgid "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
+msgstr "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
+
+#: builtins.c:840
+msgid "ARGs are given, all shell variables are printed."
+msgstr "ARGs are given, all shell variables are printed."
+
+#: builtins.c:846
+msgid "For each NAME, remove the corresponding variable or function.  Given"
+msgstr "For each NAME, remove the corresponding variable or function.  Given"
+
+#: builtins.c:847
+msgid "the `-v', unset will only act on variables.  Given the `-f' flag,"
+msgstr ""
+"the ‘\e[1m-v\e[0m’, unset will only act on variables.  Given the ‘\e[1m-f\e[0m’ flag,"
+
+#: builtins.c:848
+msgid "unset will only act on functions.  With neither flag, unset first"
+msgstr "unset will only act on functions.  With neither flag, unset first"
+
+#: builtins.c:849
+msgid "tries to unset a variable, and if that fails, then tries to unset a"
+msgstr "tries to unset a variable, and if that fails, then tries to unset a"
+
+#: builtins.c:850
+msgid "function.  Some variables cannot be unset; also see readonly."
+msgstr "function.  Some variables cannot be unset; also see readonly."
+
+#: builtins.c:856
+msgid "NAMEs are marked for automatic export to the environment of"
+msgstr "NAMEs are marked for automatic export to the environment of"
+
+#: builtins.c:857
+msgid "subsequently executed commands.  If the -f option is given,"
+msgstr "subsequently executed commands.  If the -f option is given,"
+
+#: builtins.c:858
+msgid "the NAMEs refer to functions.  If no NAMEs are given, or if `-p'"
+msgstr "the NAMEs refer to functions.  If no NAMEs are given, or if ‘\e[1m-p\e[0m’"
+
+#: builtins.c:859
+msgid "is given, a list of all names that are exported in this shell is"
+msgstr "is given, a list of all names that are exported in this shell is"
+
+#: builtins.c:860
+msgid "printed.  An argument of `-n' says to remove the export property"
+msgstr "printed.  An argument of ‘\e[1m-n\e[0m’ says to remove the export property"
+
+#: builtins.c:861
+msgid "from subsequent NAMEs.  An argument of `--' disables further option"
+msgstr ""
+"from subsequent NAMEs.  An argument of ‘\e[1m--\e[0m’ disables further option"
+
+#: builtins.c:862 builtins.c:874
+msgid "processing."
+msgstr "processing."
+
+#: builtins.c:868
+msgid "The given NAMEs are marked readonly and the values of these NAMEs may"
+msgstr "The given NAMEs are marked readonly and the values of these NAMEs may"
+
+#: builtins.c:869
+msgid "not be changed by subsequent assignment.  If the -f option is given,"
+msgstr "not be changed by subsequent assignment.  If the -f option is given,"
+
+#: builtins.c:870
+msgid "then functions corresponding to the NAMEs are so marked.  If no"
+msgstr "then functions corresponding to the NAMEs are so marked.  If no"
+
+#: builtins.c:871
+msgid "arguments are given, or if `-p' is given, a list of all readonly names"
+msgstr ""
+"arguments are given, or if ‘\e[1m-p\e[0m’ is given, a list of all readonly names"
+
+#: builtins.c:872
+msgid "is printed.  The `-a' option means to treat each NAME as"
+msgstr "is printed.  The ‘\e[1m-a\e[0m’ option means to treat each NAME as"
+
+#: builtins.c:873
+msgid "an array variable.  An argument of `--' disables further option"
+msgstr "an array variable.  An argument of ‘\e[1m--\e[0m’ disables further option"
+
+#: builtins.c:880
+msgid "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+msgstr "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+
+#: builtins.c:881
+msgid "not given, it is assumed to be 1."
+msgstr "not given, it is assumed to be 1."
+
+#: builtins.c:887 builtins.c:896
+msgid "Read and execute commands from FILENAME and return.  The pathnames"
+msgstr "Read and execute commands from FILENAME and return.  The pathnames"
+
+#: builtins.c:888 builtins.c:897
+msgid "in $PATH are used to find the directory containing FILENAME.  If any"
+msgstr "in $PATH are used to find the directory containing FILENAME.  If any"
+
+#: builtins.c:889 builtins.c:898
+msgid "ARGUMENTS are supplied, they become the positional parameters when"
+msgstr "ARGUMENTS are supplied, they become the positional parameters when"
+
+#: builtins.c:890 builtins.c:899
+msgid "FILENAME is executed."
+msgstr "FILENAME is executed."
+
+#: builtins.c:906
+msgid "Suspend the execution of this shell until it receives a SIGCONT"
+msgstr "Suspend the execution of this shell until it receives a SIGCONT"
+
+#: builtins.c:907
+msgid "signal.  The `-f' if specified says not to complain about this"
+msgstr "signal.  The ‘\e[1m-f\e[0m’ if specified says not to complain about this"
+
+#: builtins.c:908
+msgid "being a login shell if it is; just suspend anyway."
+msgstr "being a login shell if it is; just suspend anyway."
+
+#: builtins.c:915
+msgid "Exits with a status of 0 (true) or 1 (false) depending on"
+msgstr "Exits with a status of 0 (true) or 1 (false) depending on"
+
+#: builtins.c:916
+msgid "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
+msgstr "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
+
+#: builtins.c:917
+msgid "expressions are often used to examine the status of a file.  There"
+msgstr "expressions are often used to examine the status of a file.  There"
+
+#: builtins.c:918
+msgid "are string operators as well, and numeric comparison operators."
+msgstr "are string operators as well, and numeric comparison operators."
+
+#: builtins.c:920
+msgid "File operators:"
+msgstr "File operators:"
+
+#: builtins.c:922
+msgid "    -a FILE        True if file exists."
+msgstr "    -a FILE        True if file exists."
+
+#: builtins.c:923
+msgid "    -b FILE        True if file is block special."
+msgstr "    -b FILE        True if file is block special."
+
+#: builtins.c:924
+msgid "    -c FILE        True if file is character special."
+msgstr "    -c FILE        True if file is character special."
+
+#: builtins.c:925
+msgid "    -d FILE        True if file is a directory."
+msgstr "    -d FILE        True if file is a directory."
+
+#: builtins.c:926
+msgid "    -e FILE        True if file exists."
+msgstr "    -e FILE        True if file exists."
+
+#: builtins.c:927
+msgid "    -f FILE        True if file exists and is a regular file."
+msgstr "    -f FILE        True if file exists and is a regular file."
+
+#: builtins.c:928
+msgid "    -g FILE        True if file is set-group-id."
+msgstr "    -g FILE        True if file is set-group-id."
+
+#: builtins.c:929
+msgid "    -h FILE        True if file is a symbolic link."
+msgstr "    -h FILE        True if file is a symbolic link."
+
+#: builtins.c:930
+msgid "    -L FILE        True if file is a symbolic link."
+msgstr "    -L FILE        True if file is a symbolic link."
+
+#: builtins.c:931
+msgid "    -k FILE        True if file has its `sticky' bit set."
+msgstr "    -k FILE        True if file has its ‘\e[1msticky\e[0m’ bit set."
+
+#: builtins.c:932
+msgid "    -p FILE        True if file is a named pipe."
+msgstr "    -p FILE        True if file is a named pipe."
+
+#: builtins.c:933
+msgid "    -r FILE        True if file is readable by you."
+msgstr "    -r FILE        True if file is readable by you."
+
+#: builtins.c:934
+msgid "    -s FILE        True if file exists and is not empty."
+msgstr "    -s FILE        True if file exists and is not empty."
+
+#: builtins.c:935
+msgid "    -S FILE        True if file is a socket."
+msgstr "    -S FILE        True if file is a socket."
+
+#: builtins.c:936
+msgid "    -t FD          True if FD is opened on a terminal."
+msgstr "    -t FD          True if FD is opened on a terminal."
+
+#: builtins.c:937
+msgid "    -u FILE        True if the file is set-user-id."
+msgstr "    -u FILE        True if the file is set-user-id."
+
+#: builtins.c:938
+msgid "    -w FILE        True if the file is writable by you."
+msgstr "    -w FILE        True if the file is writable by you."
+
+#: builtins.c:939
+msgid "    -x FILE        True if the file is executable by you."
+msgstr "    -x FILE        True if the file is executable by you."
+
+#: builtins.c:940
+msgid "    -O FILE        True if the file is effectively owned by you."
+msgstr "    -O FILE        True if the file is effectively owned by you."
+
+#: builtins.c:941
+msgid "    -G FILE        True if the file is effectively owned by your group."
+msgstr ""
+"    -G FILE        True if the file is effectively owned by your group."
+
+#: builtins.c:942
+msgid ""
+"    -N FILE        True if the file has been modified since it was last read."
+msgstr ""
+"    -N FILE        True if the file has been modified since it was last read."
+
+#: builtins.c:944
+msgid "  FILE1 -nt FILE2  True if file1 is newer than file2 (according to"
+msgstr "  FILE1 -nt FILE2  True if file1 is newer than file2 (according to"
+
+#: builtins.c:945
+msgid "                   modification date)."
+msgstr "                   modification date)."
+
+#: builtins.c:947
+msgid "  FILE1 -ot FILE2  True if file1 is older than file2."
+msgstr "  FILE1 -ot FILE2  True if file1 is older than file2."
+
+#: builtins.c:949
+msgid "  FILE1 -ef FILE2  True if file1 is a hard link to file2."
+msgstr "  FILE1 -ef FILE2  True if file1 is a hard link to file2."
+
+#: builtins.c:951
+msgid "String operators:"
+msgstr "String operators:"
+
+#: builtins.c:953
+msgid "    -z STRING      True if string is empty."
+msgstr "    -z STRING      True if string is empty."
+
+#: builtins.c:955
+msgid "    -n STRING"
+msgstr "    -n STRING"
+
+#: builtins.c:956
+msgid "    STRING         True if string is not empty."
+msgstr "    STRING         True if string is not empty."
+
+#: builtins.c:958
+msgid "    STRING1 = STRING2"
+msgstr "    STRING1 = STRING2"
+
+#: builtins.c:959
+msgid "                   True if the strings are equal."
+msgstr "                   True if the strings are equal."
+
+#: builtins.c:960
+msgid "    STRING1 != STRING2"
+msgstr "    STRING1 != STRING2"
+
+#: builtins.c:961
+msgid "                   True if the strings are not equal."
+msgstr "                   True if the strings are not equal."
+
+#: builtins.c:962
+msgid "    STRING1 < STRING2"
+msgstr "    STRING1 < STRING2"
+
+#: builtins.c:963
+msgid ""
+"                   True if STRING1 sorts before STRING2 lexicographically."
+msgstr ""
+"                   True if STRING1 sorts before STRING2 lexicographically."
+
+#: builtins.c:964
+msgid "    STRING1 > STRING2"
+msgstr "    STRING1 > STRING2"
+
+#: builtins.c:965
+msgid ""
+"                   True if STRING1 sorts after STRING2 lexicographically."
+msgstr ""
+"                   True if STRING1 sorts after STRING2 lexicographically."
+
+#: builtins.c:967
+msgid "Other operators:"
+msgstr "Other operators:"
+
+#: builtins.c:969
+msgid "    -o OPTION      True if the shell option OPTION is enabled."
+msgstr "    -o OPTION      True if the shell option OPTION is enabled."
+
+#: builtins.c:970
+msgid "    ! EXPR         True if expr is false."
+msgstr "    ! EXPR         True if expr is false."
+
+#: builtins.c:971
+msgid "    EXPR1 -a EXPR2 True if both expr1 AND expr2 are true."
+msgstr "    EXPR1 -a EXPR2 True if both expr1 AND expr2 are true."
+
+#: builtins.c:972
+msgid "    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true."
+msgstr "    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true."
+
+#: builtins.c:974
+msgid "    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,"
+msgstr "    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,"
+
+#: builtins.c:975
+msgid "                   -lt, -le, -gt, or -ge."
+msgstr "                   -lt, -le, -gt, or -ge."
+
+#: builtins.c:977
+msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
+msgstr "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
+
+#: builtins.c:978
+msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+msgstr "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+
+#: builtins.c:979
+msgid "than ARG2."
+msgstr "than ARG2."
+
+#: builtins.c:985
+msgid "This is a synonym for the \"test\" builtin, but the last"
+msgstr "This is a synonym for the “\e[1mtest\e[0m” builtin, but the last"
+
+#: builtins.c:986
+msgid "argument must be a literal `]', to match the opening `['."
+msgstr "argument must be a literal ‘\e[1m]\e[0m’, to match the opening ‘\e[1m[\e[0m’."
+
+#: builtins.c:992
+msgid "Print the accumulated user and system times for processes run from"
+msgstr "Print the accumulated user and system times for processes run from"
+
+#: builtins.c:993
+msgid "the shell."
+msgstr "the shell."
+
+#: builtins.c:999
+msgid "The command ARG is to be read and executed when the shell receives"
+msgstr "The command ARG is to be read and executed when the shell receives"
+
+#: builtins.c:1000
+msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
+msgstr "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
+
+#: builtins.c:1001
+msgid "reset to their original values.  If ARG is the null string each"
+msgstr "reset to their original values.  If ARG is the null string each"
+
+#: builtins.c:1002
+msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
+msgstr "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
+
+#: builtins.c:1003
+msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
+msgstr "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
+
+#: builtins.c:1004
+msgid "the shell.  If a SIGNAL_SPEC is DEBUG, ARG is executed after every"
+msgstr "the shell.  If a SIGNAL_SPEC is DEBUG, ARG is executed after every"
+
+#: builtins.c:1005
+msgid "command.  If ARG is `-p' then the trap commands associated with"
+msgstr "command.  If ARG is ‘\e[1m-p\e[0m’ then the trap commands associated with"
+
+#: builtins.c:1006
+msgid "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
+msgstr "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
+
+#: builtins.c:1007
+msgid "only `-p' is given, trap prints the list of commands associated with"
+msgstr ""
+"only ‘\e[1m-p\e[0m’ is given, trap prints the list of commands associated with"
+
+#: builtins.c:1008
+msgid ""
+"each signal number.  Each SIGNAL_SPEC is either a signal name in <signal.h>"
+msgstr ""
+"each signal number.  Each SIGNAL_SPEC is either a signal name in <signal.h>"
+
+#: builtins.c:1009
+msgid "or a signal number.  `trap -l' prints a list of signal names and their"
+msgstr ""
+"or a signal number.  ‘\e[1mtrap -l\e[0m’ prints a list of signal names and their"
+
+#: builtins.c:1010
+msgid "corresponding numbers.  Note that a signal can be sent to the shell"
+msgstr "corresponding numbers.  Note that a signal can be sent to the shell"
+
+#: builtins.c:1011
+msgid "with \"kill -signal $$\"."
+msgstr "with “\e[1mkill -signal $$\e[0m”."
+
+#: builtins.c:1017
+msgid "For each NAME, indicate how it would be interpreted if used as a"
+msgstr "For each NAME, indicate how it would be interpreted if used as a"
+
+#: builtins.c:1018
+msgid "command name."
+msgstr "command name."
+
+#: builtins.c:1020
+msgid "If the -t option is used, `type' outputs a single word which is one of"
+msgstr ""
+"If the -t option is used, ‘\e[1mtype\e[0m’ outputs a single word which is one of"
+
+#: builtins.c:1021
+msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+msgstr ""
+"‘\e[1malias\e[0m’, ‘\e[1mkeyword\e[0m’, ‘\e[1mfunction\e[0m’, ‘\e[1mbuiltin\e[0m’, ‘\e[1mfile\e"
+"[0m’ or ‘\e[1m\e[0m’, if NAME is an"
+
+#: builtins.c:1022
+msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
+msgstr "alias, shell reserved word, shell function, shell builtin, disk file,"
+
+#: builtins.c:1023
+msgid "or unfound, respectively."
+msgstr "or unfound, respectively."
+
+#: builtins.c:1025
+msgid "If the -p flag is used, `type' either returns the name of the disk"
+msgstr ""
+"If the -p flag is used, ‘\e[1mtype\e[0m’ either returns the name of the disk"
+
+#: builtins.c:1026
+msgid "file that would be executed, or nothing if `type -t NAME' would not"
+msgstr ""
+"file that would be executed, or nothing if ‘\e[1mtype -t NAME\e[0m’ would not"
+
+#: builtins.c:1027
+msgid "return `file'."
+msgstr "return ‘\e[1mfile\e[0m’."
+
+#: builtins.c:1029
+msgid "If the -a flag is used, `type' displays all of the places that contain"
+msgstr ""
+"If the -a flag is used, ‘\e[1mtype\e[0m’ displays all of the places that contain"
+
+#: builtins.c:1030
+msgid "an executable named `file'.  This includes aliases, builtins, and"
+msgstr ""
+"an executable named ‘\e[1mfile\e[0m’.  This includes aliases, builtins, and"
+
+#: builtins.c:1031
+msgid "functions, if and only if the -p flag is not also used."
+msgstr "functions, if and only if the -p flag is not also used."
+
+#: builtins.c:1033
+msgid "The -f flag suppresses shell function lookup."
+msgstr "The -f flag suppresses shell function lookup."
+
+#: builtins.c:1035
+msgid "The -P flag forces a PATH search for each NAME, even if it is an alias,"
+msgstr ""
+"The -P flag forces a PATH search for each NAME, even if it is an alias,"
+
+#: builtins.c:1036
+msgid "builtin, or function, and returns the name of the disk file that would"
+msgstr "builtin, or function, and returns the name of the disk file that would"
+
+#: builtins.c:1037
+msgid "be executed."
+msgstr "be executed."
+
+#: builtins.c:1044
+msgid "Ulimit provides control over the resources available to processes"
+msgstr "Ulimit provides control over the resources available to processes"
+
+#: builtins.c:1045
+msgid "started by the shell, on systems that allow such control.  If an"
+msgstr "started by the shell, on systems that allow such control.  If an"
+
+#: builtins.c:1046
+msgid "option is given, it is interpreted as follows:"
+msgstr "option is given, it is interpreted as follows:"
+
+#: builtins.c:1048
+msgid "    -S\tuse the `soft' resource limit"
+msgstr "    -S\tuse the ‘\e[1msoft\e[0m’ resource limit"
+
+#: builtins.c:1049
+msgid "    -H\tuse the `hard' resource limit"
+msgstr "    -H\tuse the ‘\e[1mhard\e[0m’ resource limit"
+
+#: builtins.c:1050
+msgid "    -a\tall current limits are reported"
+msgstr "    -a\tall current limits are reported"
+
+#: builtins.c:1051
+msgid "    -c\tthe maximum size of core files created"
+msgstr "    -c\tthe maximum size of core files created"
+
+#: builtins.c:1052
+msgid "    -d\tthe maximum size of a process's data segment"
+msgstr "    -d\tthe maximum size of a process's data segment"
+
+#: builtins.c:1053
+msgid "    -f\tthe maximum size of files created by the shell"
+msgstr "    -f\tthe maximum size of files created by the shell"
+
+#: builtins.c:1054
+msgid "    -l\tthe maximum size a process may lock into memory"
+msgstr "    -l\tthe maximum size a process may lock into memory"
+
+#: builtins.c:1055
+msgid "    -m\tthe maximum resident set size"
+msgstr "    -m\tthe maximum resident set size"
+
+#: builtins.c:1056
+msgid "    -n\tthe maximum number of open file descriptors"
+msgstr "    -n\tthe maximum number of open file descriptors"
+
+#: builtins.c:1057
+msgid "    -p\tthe pipe buffer size"
+msgstr "    -p\tthe pipe buffer size"
+
+#: builtins.c:1058
+msgid "    -s\tthe maximum stack size"
+msgstr "    -s\tthe maximum stack size"
+
+#: builtins.c:1059
+msgid "    -t\tthe maximum amount of cpu time in seconds"
+msgstr "    -t\tthe maximum amount of cpu time in seconds"
+
+#: builtins.c:1060
+msgid "    -u\tthe maximum number of user processes"
+msgstr "    -u\tthe maximum number of user processes"
+
+#: builtins.c:1061
+msgid "    -v\tthe size of virtual memory"
+msgstr "    -v\tthe size of virtual memory"
+
+#: builtins.c:1063
+msgid "If LIMIT is given, it is the new value of the specified resource;"
+msgstr "If LIMIT is given, it is the new value of the specified resource;"
+
+#: builtins.c:1064
+msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for"
+msgstr ""
+"the special LIMIT values ‘\e[1msoft\e[0m’, ‘\e[1mhard\e[0m’, and ‘\e[1munlimited\e[0m’ "
+"stand for"
+
+#: builtins.c:1065
+msgid ""
+"the current soft limit, the current hard limit, and no limit, respectively."
+msgstr ""
+"the current soft limit, the current hard limit, and no limit, respectively."
+
+#: builtins.c:1066
+msgid "Otherwise, the current value of the specified resource is printed."
+msgstr "Otherwise, the current value of the specified resource is printed."
+
+#: builtins.c:1067
+msgid "If no option is given, then -f is assumed.  Values are in 1024-byte"
+msgstr "If no option is given, then -f is assumed.  Values are in 1024-byte"
+
+#: builtins.c:1068
+msgid "increments, except for -t, which is in seconds, -p, which is in"
+msgstr "increments, except for -t, which is in seconds, -p, which is in"
+
+#: builtins.c:1069
+msgid "increments of 512 bytes, and -u, which is an unscaled number of"
+msgstr "increments of 512 bytes, and -u, which is an unscaled number of"
+
+#: builtins.c:1070
+msgid "processes."
+msgstr "processes."
+
+#: builtins.c:1077
+msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+msgstr "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+
+#: builtins.c:1078
+msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+msgstr ""
+"‘\e[1m-S\e[0m’ is supplied, the current value of the mask is printed.  The ‘\e[1m-S\e"
+"[0m’"
+
+#: builtins.c:1079
+msgid "option makes the output symbolic; otherwise an octal number is output."
+msgstr "option makes the output symbolic; otherwise an octal number is output."
+
+#: builtins.c:1080
+msgid "If `-p' is supplied, and MODE is omitted, the output is in a form"
+msgstr ""
+"If ‘\e[1m-p\e[0m’ is supplied, and MODE is omitted, the output is in a form"
+
+#: builtins.c:1081
+msgid "that may be used as input.  If MODE begins with a digit, it is"
+msgstr "that may be used as input.  If MODE begins with a digit, it is"
+
+#: builtins.c:1082
+msgid "interpreted as an octal number, otherwise it is a symbolic mode string"
+msgstr "interpreted as an octal number, otherwise it is a symbolic mode string"
+
+#: builtins.c:1083
+msgid "like that accepted by chmod(1)."
+msgstr "like that accepted by chmod(1)."
+
+#: builtins.c:1090 builtins.c:1102
+msgid "Wait for the specified process and report its termination status.  If"
+msgstr "Wait for the specified process and report its termination status.  If"
+
+#: builtins.c:1091 builtins.c:1103
+msgid "N is not given, all currently active child processes are waited for,"
+msgstr "N is not given, all currently active child processes are waited for,"
+
+#: builtins.c:1092
+msgid "and the return code is zero.  N may be a process ID or a job"
+msgstr "and the return code is zero.  N may be a process ID or a job"
+
+#: builtins.c:1093
+msgid "specification; if a job spec is given, all processes in the job's"
+msgstr "specification; if a job spec is given, all processes in the job's"
+
+#: builtins.c:1094
+msgid "pipeline are waited for."
+msgstr "pipeline are waited for."
+
+#: builtins.c:1104
+msgid "and the return code is zero.  N is a process ID; if it is not given,"
+msgstr "and the return code is zero.  N is a process ID; if it is not given,"
+
+#: builtins.c:1105
+msgid "all child processes of the shell are waited for."
+msgstr "all child processes of the shell are waited for."
+
+#: builtins.c:1112
+msgid "The `for' loop executes a sequence of commands for each member in a"
+msgstr ""
+"The ‘\e[1mfor\e[0m’ loop executes a sequence of commands for each member in a"
+
+#: builtins.c:1113
+msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+msgstr ""
+"list of items.  If ‘\e[1min WORDS ...;\e[0m’ is not present, then ‘\e[1min “\e[1m$@\e"
+"[0m”\e[0m’ is"
+
+#: builtins.c:1114
+msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
+msgstr "assumed.  For each element in WORDS, NAME is set to that element, and"
+
+#: builtins.c:1115
+msgid "the COMMANDS are executed."
+msgstr "the COMMANDS are executed."
+
+#: builtins.c:1121
+msgid "Equivalent to"
+msgstr "Equivalent to"
+
+#: builtins.c:1122
+msgid "\t(( EXP1 ))"
+msgstr "\t(( EXP1 ))"
+
+#: builtins.c:1123
+msgid "\twhile (( EXP2 )); do"
+msgstr "\twhile (( EXP2 )); do"
+
+#: builtins.c:1124
+msgid "\t\tCOMMANDS"
+msgstr "\t\tCOMMANDS"
+
+#: builtins.c:1125
+msgid "\t\t(( EXP3 ))"
+msgstr "\t\t(( EXP3 ))"
+
+#: builtins.c:1126
+msgid "\tdone"
+msgstr "\tdone"
+
+#: builtins.c:1127
+msgid "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
+msgstr "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
+
+#: builtins.c:1128
+msgid "omitted, it behaves as if it evaluates to 1."
+msgstr "omitted, it behaves as if it evaluates to 1."
+
+#: builtins.c:1134
+msgid "The WORDS are expanded, generating a list of words.  The"
+msgstr "The WORDS are expanded, generating a list of words.  The"
+
+#: builtins.c:1135
+msgid "set of expanded words is printed on the standard error, each"
+msgstr "set of expanded words is printed on the standard error, each"
+
+#: builtins.c:1136
+msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
+msgstr ""
+"preceded by a number.  If ‘\e[1min WORDS\e[0m’ is not present, ‘\e[1min “\e[1m$@\e"
+"[0m”\e[0m’"
+
+#: builtins.c:1137
+msgid "is assumed.  The PS3 prompt is then displayed and a line read"
+msgstr "is assumed.  The PS3 prompt is then displayed and a line read"
+
+#: builtins.c:1138
+msgid "from the standard input.  If the line consists of the number"
+msgstr "from the standard input.  If the line consists of the number"
+
+#: builtins.c:1139
+msgid "corresponding to one of the displayed words, then NAME is set"
+msgstr "corresponding to one of the displayed words, then NAME is set"
+
+#: builtins.c:1140
+msgid "to that word.  If the line is empty, WORDS and the prompt are"
+msgstr "to that word.  If the line is empty, WORDS and the prompt are"
+
+#: builtins.c:1141
+msgid "redisplayed.  If EOF is read, the command completes.  Any other"
+msgstr "redisplayed.  If EOF is read, the command completes.  Any other"
+
+#: builtins.c:1142
+msgid "value read causes NAME to be set to null.  The line read is saved"
+msgstr "value read causes NAME to be set to null.  The line read is saved"
+
+#: builtins.c:1143
+msgid "in the variable REPLY.  COMMANDS are executed after each selection"
+msgstr "in the variable REPLY.  COMMANDS are executed after each selection"
+
+#: builtins.c:1144
+msgid "until a break command is executed."
+msgstr "until a break command is executed."
+
+#: builtins.c:1150
+msgid "Execute PIPELINE and print a summary of the real time, user CPU time,"
+msgstr "Execute PIPELINE and print a summary of the real time, user CPU time,"
+
+#: builtins.c:1151
+msgid "and system CPU time spent executing PIPELINE when it terminates."
+msgstr "and system CPU time spent executing PIPELINE when it terminates."
+
+#: builtins.c:1152
+msgid "The return status is the return status of PIPELINE.  The `-p' option"
+msgstr ""
+"The return status is the return status of PIPELINE.  The ‘\e[1m-p\e[0m’ option"
+
+#: builtins.c:1153
+msgid "prints the timing summary in a slightly different format.  This uses"
+msgstr "prints the timing summary in a slightly different format.  This uses"
+
+#: builtins.c:1154
+msgid "the value of the TIMEFORMAT variable as the output format."
+msgstr "the value of the TIMEFORMAT variable as the output format."
+
+#: builtins.c:1160
+msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
+msgstr "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
+
+#: builtins.c:1161
+msgid "`|' is used to separate multiple patterns."
+msgstr "‘\e[1m|\e[0m’ is used to separate multiple patterns."
+
+#: builtins.c:1167
+msgid ""
+"The if COMMANDS are executed.  If the exit status is zero, then the then"
+msgstr ""
+"The if COMMANDS are executed.  If the exit status is zero, then the then"
+
+#: builtins.c:1168
+msgid ""
+"COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+msgstr ""
+"COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+
+#: builtins.c:1169
+msgid ""
+"in turn, and if the exit status is zero, the corresponding then COMMANDS"
+msgstr ""
+"in turn, and if the exit status is zero, the corresponding then COMMANDS"
+
+#: builtins.c:1170
+msgid ""
+"are executed and the if command completes.  Otherwise, the else COMMANDS"
+msgstr ""
+"are executed and the if command completes.  Otherwise, the else COMMANDS"
+
+#: builtins.c:1171
+msgid ""
+"are executed, if present.  The exit status is the exit status of the last"
+msgstr ""
+"are executed, if present.  The exit status is the exit status of the last"
+
+#: builtins.c:1172
+msgid "command executed, or zero if no condition tested true."
+msgstr "command executed, or zero if no condition tested true."
+
+#: builtins.c:1178 builtins.c:1185
+msgid "Expand and execute COMMANDS as long as the final command in the"
+msgstr "Expand and execute COMMANDS as long as the final command in the"
+
+#: builtins.c:1179
+msgid "`while' COMMANDS has an exit status of zero."
+msgstr "‘\e[1mwhile\e[0m’ COMMANDS has an exit status of zero."
+
+#: builtins.c:1186
+msgid "`until' COMMANDS has an exit status which is not zero."
+msgstr "‘\e[1muntil\e[0m’ COMMANDS has an exit status which is not zero."
+
+#: builtins.c:1192
+msgid "Create a simple command invoked by NAME which runs COMMANDS."
+msgstr "Create a simple command invoked by NAME which runs COMMANDS."
+
+#: builtins.c:1193
+msgid "Arguments on the command line along with NAME are passed to the"
+msgstr "Arguments on the command line along with NAME are passed to the"
+
+#: builtins.c:1194
+msgid "function as $0 .. $n."
+msgstr "function as $0 .. $n."
+
+#: builtins.c:1200
+msgid "Run a set of commands in a group.  This is one way to redirect an"
+msgstr "Run a set of commands in a group.  This is one way to redirect an"
+
+#: builtins.c:1201
+msgid "entire set of commands."
+msgstr "entire set of commands."
+
+#: builtins.c:1207
+msgid "This is similar to the `fg' command.  Resume a stopped or background"
+msgstr ""
+"This is similar to the ‘\e[1mfg\e[0m’ command.  Resume a stopped or background"
+
+#: builtins.c:1208
+msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
+msgstr "job.  If you specifiy DIGITS, then that job is used.  If you specify"
+
+#: builtins.c:1209
+msgid "WORD, then the job whose name begins with WORD is used.  Following the"
+msgstr "WORD, then the job whose name begins with WORD is used.  Following the"
+
+#: builtins.c:1210
+msgid "job specification with a `&' places the job in the background."
+msgstr "job specification with a ‘\e[1m&\e[0m’ places the job in the background."
+
+#: builtins.c:1216
+msgid "The EXPRESSION is evaluated according to the rules for arithmetic"
+msgstr "The EXPRESSION is evaluated according to the rules for arithmetic"
+
+#: builtins.c:1217
+msgid "evaluation.  Equivalent to \"let EXPRESSION\"."
+msgstr "evaluation.  Equivalent to “\e[1mlet EXPRESSION\e[0m”."
+
+#: builtins.c:1223
+msgid ""
+"Returns a status of 0 or 1 depending on the evaluation of the conditional"
+msgstr ""
+"Returns a status of 0 or 1 depending on the evaluation of the conditional"
+
+#: builtins.c:1224
+msgid ""
+"expression EXPRESSION.  Expressions are composed of the same primaries used"
+msgstr ""
+"expression EXPRESSION.  Expressions are composed of the same primaries used"
+
+#: builtins.c:1225
+msgid ""
+"by the `test' builtin, and may be combined using the following operators"
+msgstr ""
+"by the ‘\e[1mtest\e[0m’ builtin, and may be combined using the following "
+"operators"
+
+#: builtins.c:1227
+msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION"
+msgstr "\t( EXPRESSION )\tReturns the value of EXPRESSION"
+
+#: builtins.c:1228
+msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false"
+msgstr "\t! EXPRESSION\tTrue if EXPRESSION is false; else false"
+
+#: builtins.c:1229
+msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false"
+msgstr "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false"
+
+#: builtins.c:1230
+msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false"
+msgstr "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false"
+
+#: builtins.c:1232
+msgid ""
+"When the `==' and `!=' operators are used, the string to the right of the"
+msgstr ""
+"When the ‘\e[1m==\e[0m’ and ‘\e[1m!=\e[0m’ operators are used, the string to the "
+"right of the"
+
+#: builtins.c:1233
+msgid "operator is used as a pattern and pattern matching is performed.  The"
+msgstr "operator is used as a pattern and pattern matching is performed.  The"
+
+#: builtins.c:1234
+msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to"
+msgstr "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to"
+
+#: builtins.c:1235
+msgid "determine the expression's value."
+msgstr "determine the expression's value."
+
+#: builtins.c:1241
+msgid "BASH_VERSION    Version information for this Bash."
+msgstr "BASH_VERSION    Version information for this Bash."
+
+#: builtins.c:1242
+msgid "CDPATH          A colon separated list of directories to search"
+msgstr "CDPATH          A colon separated list of directories to search"
+
+#: builtins.c:1243
+msgid "\t\twhen the argument to `cd' is not found in the current"
+msgstr "\t\twhen the argument to ‘\e[1mcd\e[0m’ is not found in the current"
+
+#: builtins.c:1244
+msgid "\t\tdirectory."
+msgstr "\t\tdirectory."
+
+#: builtins.c:1245
+msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
+msgstr "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
+
+#: builtins.c:1246
+msgid "\t\tbe ignored by pathname expansion."
+msgstr "\t\tbe ignored by pathname expansion."
+
+#: builtins.c:1248
+msgid ""
+"HISTFILE        The name of the file where your command history is stored."
+msgstr ""
+"HISTFILE        The name of the file where your command history is stored."
+
+#: builtins.c:1249
+msgid "HISTFILESIZE    The maximum number of lines this file can contain."
+msgstr "HISTFILESIZE    The maximum number of lines this file can contain."
+
+#: builtins.c:1250
+msgid "HISTSIZE        The maximum number of history lines that a running"
+msgstr "HISTSIZE        The maximum number of history lines that a running"
+
+#: builtins.c:1251
+msgid "\t\tshell can access."
+msgstr "\t\tshell can access."
+
+#: builtins.c:1253
+msgid "HOME            The complete pathname to your login directory."
+msgstr "HOME            The complete pathname to your login directory."
+
+#: builtins.c:1254
+msgid "HOSTNAME\tThe name of the current host."
+msgstr "HOSTNAME\tThe name of the current host."
+
+#: builtins.c:1255
+msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
+msgstr "HOSTTYPE        The type of CPU this version of Bash is running under."
+
+#: builtins.c:1256
+msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+msgstr "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+
+#: builtins.c:1257
+msgid "\t\tcharacter as the sole input.  If set, then the value"
+msgstr "\t\tcharacter as the sole input.  If set, then the value"
+
+#: builtins.c:1258
+msgid "\t\tof it is the number of EOF characters that can be seen"
+msgstr "\t\tof it is the number of EOF characters that can be seen"
+
+#: builtins.c:1259
+msgid "\t\tin a row on an empty line before the shell will exit"
+msgstr "\t\tin a row on an empty line before the shell will exit"
+
+#: builtins.c:1260
+msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
+msgstr "\t\t(default 10).  When unset, EOF signifies the end of input."
+
+#: builtins.c:1261
+msgid "MACHTYPE\tA string describing the current system Bash is running on."
+msgstr "MACHTYPE\tA string describing the current system Bash is running on."
+
+#: builtins.c:1262
+msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
+msgstr "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
+
+#: builtins.c:1263
+msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
+msgstr "MAILPATH\tA colon-separated list of filenames which Bash checks"
+
+#: builtins.c:1264
+msgid "\t\tfor new mail."
+msgstr "\t\tfor new mail."
+
+#: builtins.c:1265
+msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
+msgstr "OSTYPE\t\tThe version of Unix this version of Bash is running on."
+
+#: builtins.c:1266
+msgid "PATH            A colon-separated list of directories to search when"
+msgstr "PATH            A colon-separated list of directories to search when"
+
+#: builtins.c:1267
+msgid "\t\tlooking for commands."
+msgstr "\t\tlooking for commands."
+
+#: builtins.c:1268
+msgid "PROMPT_COMMAND  A command to be executed before the printing of each"
+msgstr "PROMPT_COMMAND  A command to be executed before the printing of each"
+
+#: builtins.c:1269
+msgid "\t\tprimary prompt."
+msgstr "\t\tprimary prompt."
+
+#: builtins.c:1270
+msgid "PS1             The primary prompt string."
+msgstr "PS1             The primary prompt string."
+
+#: builtins.c:1271
+msgid "PS2             The secondary prompt string."
+msgstr "PS2             The secondary prompt string."
+
+#: builtins.c:1272
+msgid "PWD\t\tThe full pathname of the current directory."
+msgstr "PWD\t\tThe full pathname of the current directory."
+
+#: builtins.c:1273
+msgid "SHELLOPTS\tA colon-separated list of enabled shell options."
+msgstr "SHELLOPTS\tA colon-separated list of enabled shell options."
+
+#: builtins.c:1274
+msgid "TERM            The name of the current terminal type."
+msgstr "TERM            The name of the current terminal type."
+
+#: builtins.c:1275
+msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the"
+msgstr "TIMEFORMAT\tThe output format for timing statistics displayed by the"
+
+#: builtins.c:1276
+msgid "\t\t`time' reserved word."
+msgstr "\t\t‘\e[1mtime\e[0m’ reserved word."
+
+#: builtins.c:1277
+msgid "auto_resume     Non-null means a command word appearing on a line by"
+msgstr "auto_resume     Non-null means a command word appearing on a line by"
+
+#: builtins.c:1278
+msgid "\t\titself is first looked for in the list of currently"
+msgstr "\t\titself is first looked for in the list of currently"
+
+#: builtins.c:1279
+msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
+msgstr "\t\tstopped jobs.  If found there, that job is foregrounded."
+
+#: builtins.c:1280
+msgid "\t\tA value of `exact' means that the command word must"
+msgstr "\t\tA value of ‘\e[1mexact\e[0m’ means that the command word must"
+
+#: builtins.c:1281
+msgid "\t\texactly match a command in the list of stopped jobs.  A"
+msgstr "\t\texactly match a command in the list of stopped jobs.  A"
+
+#: builtins.c:1282
+msgid "\t\tvalue of `substring' means that the command word must"
+msgstr "\t\tvalue of ‘\e[1msubstring\e[0m’ means that the command word must"
+
+#: builtins.c:1283
+msgid "\t\tmatch a substring of the job.  Any other value means that"
+msgstr "\t\tmatch a substring of the job.  Any other value means that"
+
+#: builtins.c:1284
+msgid "\t\tthe command must be a prefix of a stopped job."
+msgstr "\t\tthe command must be a prefix of a stopped job."
+
+#: builtins.c:1287
+msgid "histchars       Characters controlling history expansion and quick"
+msgstr "histchars       Characters controlling history expansion and quick"
+
+#: builtins.c:1288
+msgid "\t\tsubstitution.  The first character is the history"
+msgstr "\t\tsubstitution.  The first character is the history"
+
+#: builtins.c:1289
+msgid "\t\tsubstitution character, usually `!'.  The second is"
+msgstr "\t\tsubstitution character, usually ‘\e[1m!\e[0m’.  The second is"
+
+#: builtins.c:1290
+msgid "\t\tthe `quick substitution' character, usually `^'.  The"
+msgstr "\t\tthe ‘\e[1mquick substitution\e[0m’ character, usually ‘\e[1m^\e[0m’.  The"
+
+#: builtins.c:1291
+msgid "\t\tthird is the `history comment' character, usually `#'."
+msgstr "\t\tthird is the ‘\e[1mhistory comment\e[0m’ character, usually ‘\e[1m#\e[0m’."
+
+#: builtins.c:1293
+msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which"
+msgstr "HISTIGNORE\tA colon-separated list of patterns used to decide which"
+
+#: builtins.c:1294
+msgid "\t\tcommands should be saved on the history list."
+msgstr "\t\tcommands should be saved on the history list."
+
+#: builtins.c:1306
+msgid "+N\tRotates the stack so that the Nth directory (counting"
+msgstr "+N\tRotates the stack so that the Nth directory (counting"
+
+#: builtins.c:1307
+msgid "\tfrom the left of the list shown by `dirs', starting with"
+msgstr "\tfrom the left of the list shown by ‘\e[1mdirs\e[0m’, starting with"
+
+#: builtins.c:1308 builtins.c:1312
+msgid "\tzero) is at the top."
+msgstr "\tzero) is at the top."
+
+#: builtins.c:1310
+msgid "-N\tRotates the stack so that the Nth directory (counting"
+msgstr "-N\tRotates the stack so that the Nth directory (counting"
+
+#: builtins.c:1311
+msgid "\tfrom the right of the list shown by `dirs', starting with"
+msgstr "\tfrom the right of the list shown by ‘\e[1mdirs\e[0m’, starting with"
+
+#: builtins.c:1314
+msgid "-n\tsuppress the normal change of directory when adding directories"
+msgstr "-n\tsuppress the normal change of directory when adding directories"
+
+#: builtins.c:1315
+msgid "\tto the stack, so only the stack is manipulated."
+msgstr "\tto the stack, so only the stack is manipulated."
+
+#: builtins.c:1317
+msgid "dir\tadds DIR to the directory stack at the top, making it the"
+msgstr "dir\tadds DIR to the directory stack at the top, making it the"
+
+#: builtins.c:1318
+msgid "\tnew current working directory."
+msgstr "\tnew current working directory."
+
+#: builtins.c:1332
+msgid "+N\tremoves the Nth entry counting from the left of the list"
+msgstr "+N\tremoves the Nth entry counting from the left of the list"
+
+#: builtins.c:1333
+msgid "\tshown by `dirs', starting with zero.  For example: `popd +0'"
+msgstr ""
+"\tshown by ‘\e[1mdirs\e[0m’, starting with zero.  For example: ‘\e[1mpopd +0\e[0m’"
+
+#: builtins.c:1334
+msgid "\tremoves the first directory, `popd +1' the second."
+msgstr "\tremoves the first directory, ‘\e[1mpopd +1\e[0m’ the second."
+
+#: builtins.c:1336
+msgid "-N\tremoves the Nth entry counting from the right of the list"
+msgstr "-N\tremoves the Nth entry counting from the right of the list"
+
+#: builtins.c:1337
+msgid "\tshown by `dirs', starting with zero.  For example: `popd -0'"
+msgstr ""
+"\tshown by ‘\e[1mdirs\e[0m’, starting with zero.  For example: ‘\e[1mpopd -0\e[0m’"
+
+#: builtins.c:1338
+msgid "\tremoves the last directory, `popd -1' the next to last."
+msgstr "\tremoves the last directory, ‘\e[1mpopd -1\e[0m’ the next to last."
+
+#: builtins.c:1340
+msgid "-n\tsuppress the normal change of directory when removing directories"
+msgstr "-n\tsuppress the normal change of directory when removing directories"
+
+#: builtins.c:1341
+msgid "\tfrom the stack, so only the stack is manipulated."
+msgstr "\tfrom the stack, so only the stack is manipulated."
+
+#: builtins.c:1363
+msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
+msgstr "+N\tdisplays the Nth entry counting from the left of the list shown by"
+
+#: builtins.c:1364 builtins.c:1367
+msgid "\tdirs when invoked without options, starting with zero."
+msgstr "\tdirs when invoked without options, starting with zero."
+
+#: builtins.c:1366
+msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
+msgstr ""
+"-N\tdisplays the Nth entry counting from the right of the list shown by"
+
+#: builtins.c:1374
+msgid "Toggle the values of variables controlling optional behavior."
+msgstr "Toggle the values of variables controlling optional behavior."
+
+#: builtins.c:1375
+msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
+msgstr "The -s flag means to enable (set) each OPTNAME; the -u flag"
+
+#: builtins.c:1376
+msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
+msgstr "unsets each OPTNAME.  The -q flag suppresses output; the exit"
+
+#: builtins.c:1377
+msgid "status indicates whether each OPTNAME is set or unset.  The -o"
+msgstr "status indicates whether each OPTNAME is set or unset.  The -o"
+
+#: builtins.c:1378
+msgid "option restricts the OPTNAMEs to those defined for use with"
+msgstr "option restricts the OPTNAMEs to those defined for use with"
+
+#: builtins.c:1379
+msgid "`set -o'.  With no options, or with the -p option, a list of all"
+msgstr "‘\e[1mset -o\e[0m’.  With no options, or with the -p option, a list of all"
+
+#: builtins.c:1380
+msgid "settable options is displayed, with an indication of whether or"
+msgstr "settable options is displayed, with an indication of whether or"
+
+#: builtins.c:1381
+msgid "not each is set."
+msgstr "not each is set."
+
+#: builtins.c:1387
+msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
+msgstr ""
+"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
+
+#: builtins.c:1388
+msgid "is a character string which contains three types of objects: plain"
+msgstr "is a character string which contains three types of objects: plain"
+
+#: builtins.c:1389
+msgid ""
+"characters, which are simply copied to standard output, character escape"
+msgstr ""
+"characters, which are simply copied to standard output, character escape"
+
+#: builtins.c:1390
+msgid "sequences which are converted and copied to the standard output, and"
+msgstr "sequences which are converted and copied to the standard output, and"
+
+#: builtins.c:1391
+msgid ""
+"format specifications, each of which causes printing of the next successive"
+msgstr ""
+"format specifications, each of which causes printing of the next successive"
+
+#: builtins.c:1392
+msgid "argument.  In addition to the standard printf(1) formats, %b means to"
+msgstr "argument.  In addition to the standard printf(1) formats, %b means to"
+
+#: builtins.c:1393
+msgid "expand backslash escape sequences in the corresponding argument, and %q"
+msgstr ""
+"expand backslash escape sequences in the corresponding argument, and %q"
+
+#: builtins.c:1394
+msgid "means to quote the argument in a way that can be reused as shell input."
+msgstr ""
+"means to quote the argument in a way that can be reused as shell input."
+
+#: builtins.c:1401
+msgid "For each NAME, specify how arguments are to be completed."
+msgstr "For each NAME, specify how arguments are to be completed."
+
+#: builtins.c:1402
+msgid "If the -p option is supplied, or if no options are supplied, existing"
+msgstr "If the -p option is supplied, or if no options are supplied, existing"
+
+#: builtins.c:1403
+msgid "completion specifications are printed in a way that allows them to be"
+msgstr "completion specifications are printed in a way that allows them to be"
+
+#: builtins.c:1404
+msgid "reused as input.  The -r option removes a completion specification for"
+msgstr "reused as input.  The -r option removes a completion specification for"
+
+#: builtins.c:1405
+msgid "each NAME, or, if no NAMEs are supplied, all completion specifications."
+msgstr ""
+"each NAME, or, if no NAMEs are supplied, all completion specifications."
+
+#: builtins.c:1413
+msgid "Display the possible completions depending on the options.  Intended"
+msgstr "Display the possible completions depending on the options.  Intended"
+
+#: builtins.c:1414
+msgid ""
+"to be used from within a shell function generating possible completions."
+msgstr ""
+"to be used from within a shell function generating possible completions."
+
+#: builtins.c:1415
+msgid "If the optional WORD argument is supplied, matches against WORD are"
+msgstr "If the optional WORD argument is supplied, matches against WORD are"
+
+#: builtins.c:1416
+msgid "generated."
+msgstr "generated."
diff --git a/po.orig/en@quot.gmo b/po.orig/en@quot.gmo
new file mode 100644 (file)
index 0000000..62cf080
Binary files /dev/null and b/po.orig/en@quot.gmo differ
diff --git a/po.orig/en@quot.header b/po.orig/en@quot.header
new file mode 100644 (file)
index 0000000..a9647fc
--- /dev/null
@@ -0,0 +1,22 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
diff --git a/po.orig/en@quot.po b/po.orig/en@quot.po
new file mode 100644 (file)
index 0000000..a560bf6
--- /dev/null
@@ -0,0 +1,4283 @@
+# English translations for GNU bash package.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# This file is distributed under the same license as the GNU bash package.
+# Automatically generated, 2004.
+#
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+#: builtins/caller.def:128 builtins/caller.def:132 builtins/pushd.def:655
+#: builtins/pushd.def:663 builtins/pushd.def:666 builtins/pushd.def:676
+#: builtins/pushd.def:680 builtins/pushd.def:684 builtins/pushd.def:687
+#: builtins/pushd.def:690 builtins/pushd.def:699 builtins/pushd.def:703
+#: builtins/pushd.def:707 builtins/pushd.def:710 builtins.c:321 builtins.c:325
+#: builtins.c:390 builtins.c:392 builtins.c:401 builtins.c:404 builtins.c:408
+#: builtins.c:445 builtins.c:487 builtins.c:491 builtins.c:498 builtins.c:509
+#: builtins.c:513 builtins.c:552 builtins.c:555 builtins.c:559 builtins.c:562
+#: builtins.c:630 builtins.c:637 builtins.c:692 builtins.c:713 builtins.c:718
+#: builtins.c:722 builtins.c:745 builtins.c:835 builtins.c:919 builtins.c:921
+#: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952
+#: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973
+#: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028
+#: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062
+#: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309
+#: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331
+#: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354
+#: builtins.c:1362 builtins.c:1365
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bash 3.0-rc1\n"
+"POT-Creation-Date: 2003-12-22 15:34-0500\n"
+"PO-Revision-Date: 2003-12-22 15:34-0500\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: bug-bash@gnu.org\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: arrayfunc.c:45
+msgid "bad array subscript"
+msgstr "bad array subscript"
+
+#: arrayfunc.c:306
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: cannot assign to non-numeric index"
+
+#: bashhist.c:321
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: cannot create: %s"
+
+#: bashline.c:2791
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr "bash_execute_unix_command: cannot find keymap for command"
+
+#: bashline.c:2840
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: first non-whitespace character is not ‘\"’"
+
+#: bashline.c:2869
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "no closing ‘%c’ in %s"
+
+#: bashline.c:2903
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: missing colon separator"
+
+#: builtins/alias.def:123
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "‘%s’: invalid alias name"
+
+#: builtins/bind.def:194
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "‘%s’: invalid keymap name"
+
+#: builtins/bind.def:233
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: cannot read: %s"
+
+#: builtins/bind.def:248
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "‘%s’: cannot unbind"
+
+#: builtins/bind.def:283
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "‘%s’: unknown function name"
+
+#: builtins/bind.def:291
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s is not bound to any keys.\n"
+
+#: builtins/bind.def:295
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s can be invoked via "
+
+#: builtins/break.def:128
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop"
+
+#: builtins/caller.def:127 builtins.c:320
+msgid "Returns the context of the current subroutine call."
+msgstr "Returns the context of the current subroutine call."
+
+#: builtins/caller.def:129 builtins.c:322
+msgid "Without EXPR, returns returns \"$line $filename\".  With EXPR,"
+msgstr "Without EXPR, returns returns “$line $filename”.  With EXPR,"
+
+#: builtins/caller.def:130 builtins.c:323
+msgid "returns \"$line $subroutine $filename\"; this extra information"
+msgstr "returns “$line $subroutine $filename”; this extra information"
+
+#: builtins/caller.def:131 builtins.c:324
+msgid "can be used used to provide a stack trace."
+msgstr "can be used used to provide a stack trace."
+
+#: builtins/caller.def:133 builtins.c:326
+msgid "The value of EXPR indicates how many call frames to go back before the"
+msgstr "The value of EXPR indicates how many call frames to go back before the"
+
+#: builtins/caller.def:134 builtins.c:327
+msgid "current one; the top frame is frame 0."
+msgstr "current one; the top frame is frame 0."
+
+#: builtins/cd.def:188
+msgid "HOME not set"
+msgstr "HOME not set"
+
+#: builtins/cd.def:200
+msgid "OLDPWD not set"
+msgstr "OLDPWD not set"
+
+#: builtins/cd.def:357
+#, c-format
+msgid "write error: %s"
+msgstr "write error: %s"
+
+#: builtins/common.c:133 test.c:921
+msgid "too many arguments"
+msgstr "too many arguments"
+
+#: builtins/common.c:157 shell.c:465 shell.c:737
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: option requires an argument"
+
+#: builtins/common.c:164
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: numeric argument required"
+
+#: builtins/common.c:171
+#, c-format
+msgid "%s: not found"
+msgstr "%s: not found"
+
+#: builtins/common.c:180 shell.c:750
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: invalid option"
+
+#: builtins/common.c:187
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: invalid option name"
+
+#: builtins/common.c:194 general.c:229 general.c:234
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "‘%s’: not a valid identifier"
+
+#: builtins/common.c:201
+#, c-format
+msgid "%s: invalid number"
+msgstr "%s: invalid number"
+
+#: builtins/common.c:208
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: invalid signal specification"
+
+#: builtins/common.c:215
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr "‘%s’: not a pid or valid job spec"
+
+#: builtins/common.c:222 error.c:453
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: readonly variable"
+
+#: builtins/common.c:230
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s out of range"
+
+#: builtins/common.c:230 builtins/common.c:232
+msgid "argument"
+msgstr "argument"
+
+#: builtins/common.c:232
+#, c-format
+msgid "%s out of range"
+msgstr "%s out of range"
+
+#: builtins/common.c:240
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: no such job"
+
+#: builtins/common.c:248
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: no job control"
+
+#: builtins/common.c:250
+msgid "no job control"
+msgstr "no job control"
+
+#: builtins/common.c:260
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: restricted"
+
+#: builtins/common.c:262
+msgid "restricted"
+msgstr "restricted"
+
+#: builtins/common.c:270
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: not a shell builtin"
+
+#: builtins/common.c:486
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: error retrieving current directory: %s: %s\n"
+
+#: builtins/common.c:553 builtins/common.c:555
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: ambiguous job spec"
+
+#: builtins/complete.def:251
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: invalid action name"
+
+#: builtins/complete.def:381 builtins/complete.def:524
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: no completion specification"
+
+#: builtins/complete.def:571
+msgid "warning: -F option may not work as you expect"
+msgstr "warning: -F option may not work as you expect"
+
+#: builtins/complete.def:573
+msgid "warning: -C option may not work as you expect"
+msgstr "warning: -C option may not work as you expect"
+
+#: builtins/declare.def:105
+msgid "can only be used in a function"
+msgstr "can only be used in a function"
+
+#: builtins/declare.def:295
+msgid "cannot use `-f' to make functions"
+msgstr "cannot use ‘-f’ to make functions"
+
+#: builtins/declare.def:307 execute_cmd.c:3949
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: readonly function"
+
+#: builtins/declare.def:389
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: cannot destroy array variables in this way"
+
+#: builtins/enable.def:128 builtins/enable.def:136
+msgid "dynamic loading not available"
+msgstr "dynamic loading not available"
+
+#: builtins/enable.def:303
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "cannot open shared object %s: %s"
+
+#: builtins/enable.def:326
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "cannot find %s in shared object %s: %s"
+
+#: builtins/enable.def:450
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: not dynamically loaded"
+
+#: builtins/enable.def:465
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr "%s: cannot delete: %s"
+
+#: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: is a directory"
+
+#: builtins/evalfile.c:133
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: not a regular file"
+
+#: builtins/evalfile.c:141
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: file is too large"
+
+#: builtins/exec.def:205
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: cannot execute: %s"
+
+#: builtins/exit.def:83
+msgid "not login shell: use `exit'"
+msgstr "not login shell: use ‘exit’"
+
+#: builtins/exit.def:111
+msgid "There are stopped jobs.\n"
+msgstr "There are stopped jobs.\n"
+
+#: builtins/fc.def:252
+msgid "no command found"
+msgstr "no command found"
+
+#: builtins/fc.def:317
+msgid "history specification"
+msgstr "history specification"
+
+#: builtins/fc.def:338
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr "%s: cannot open temp file: %s"
+
+#: builtins/fg_bg.def:133
+#, c-format
+msgid "job %d started without job control"
+msgstr "job %d started without job control"
+
+#: builtins/getopt.c:109
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: illegal option -- %c\n"
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: option requires an argument -- %c\n"
+
+#: builtins/hash.def:83
+msgid "hashing disabled"
+msgstr "hashing disabled"
+
+#: builtins/hash.def:128
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s: hash table empty\n"
+
+#: builtins/help.def:108
+msgid "Shell commands matching keywords `"
+msgstr "Shell commands matching keywords `"
+
+#: builtins/help.def:110
+msgid "Shell commands matching keyword `"
+msgstr "Shell commands matching keyword `"
+
+#: builtins/help.def:138
+#, c-format
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"no help topics match ‘%s’.  Try ‘help help’ or ‘man -k %s’ or ‘info %s’."
+
+#: builtins/help.def:164
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: cannot open: %s"
+
+#: builtins/help.def:182
+msgid ""
+"These shell commands are defined internally.  Type `help' to see this list.\n"
+"Type `help name' to find out more about the function `name'.\n"
+"Use `info bash' to find out more about the shell in general.\n"
+"Use `man -k' or `info' to find out more about commands not in this list.\n"
+"\n"
+"A star (*) next to a name means that the command is disabled.\n"
+"\n"
+msgstr ""
+"These shell commands are defined internally.  Type ‘help’ to see this list.\n"
+"Type ‘help name’ to find out more about the function ‘name’.\n"
+"Use ‘info bash’ to find out more about the shell in general.\n"
+"Use ‘man -k’ or ‘info’ to find out more about commands not in this list.\n"
+"\n"
+"A star (*) next to a name means that the command is disabled.\n"
+"\n"
+
+#: builtins/history.def:148
+msgid "cannot use more than one of -anrw"
+msgstr "cannot use more than one of -anrw"
+
+#: builtins/history.def:180
+msgid "history position"
+msgstr "history position"
+
+#: builtins/history.def:390
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: history expansion failed"
+
+#: builtins/jobs.def:99
+msgid "no other options allowed with `-x'"
+msgstr "no other options allowed with ‘-x’"
+
+#: builtins/kill.def:187
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: arguments must be process or job IDs"
+
+#: builtins/kill.def:248
+msgid "Unknown error"
+msgstr "Unknown error"
+
+#: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511
+msgid "expression expected"
+msgstr "expression expected"
+
+#: builtins/printf.def:249
+#, c-format
+msgid "`%s': missing format character"
+msgstr "‘%s’: missing format character"
+
+#: builtins/printf.def:408
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "‘%c’: invalid format character"
+
+#: builtins/printf.def:601
+msgid "missing hex digit for \\x"
+msgstr "missing hex digit for \\x"
+
+#: builtins/pushd.def:168
+msgid "no other directory"
+msgstr "no other directory"
+
+#: builtins/pushd.def:435
+msgid "<no current directory>"
+msgstr "<no current directory>"
+
+#: builtins/pushd.def:652 builtins.c:1351
+msgid "Display the list of currently remembered directories.  Directories"
+msgstr "Display the list of currently remembered directories.  Directories"
+
+#: builtins/pushd.def:653 builtins.c:1352
+msgid "find their way onto the list with the `pushd' command; you can get"
+msgstr "find their way onto the list with the ‘pushd’ command; you can get"
+
+#: builtins/pushd.def:654 builtins.c:1353
+msgid "back up through the list with the `popd' command."
+msgstr "back up through the list with the ‘popd’ command."
+
+#: builtins/pushd.def:656 builtins.c:1355
+msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+msgstr "The -l flag specifies that ‘dirs’ should not print shorthand versions"
+
+#: builtins/pushd.def:657 builtins.c:1356
+msgid "of directories which are relative to your home directory.  This means"
+msgstr "of directories which are relative to your home directory.  This means"
+
+#: builtins/pushd.def:658 builtins.c:1357
+msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
+msgstr "that ‘~/bin’ might be displayed as ‘/homes/bfox/bin’.  The -v flag"
+
+#: builtins/pushd.def:659 builtins.c:1358
+msgid "causes `dirs' to print the directory stack with one entry per line,"
+msgstr "causes ‘dirs’ to print the directory stack with one entry per line,"
+
+#: builtins/pushd.def:660 builtins.c:1359
+msgid "prepending the directory name with its position in the stack.  The -p"
+msgstr "prepending the directory name with its position in the stack.  The -p"
+
+#: builtins/pushd.def:661 builtins.c:1360
+msgid "flag does the same thing, but the stack position is not prepended."
+msgstr "flag does the same thing, but the stack position is not prepended."
+
+#: builtins/pushd.def:662 builtins.c:1361
+msgid "The -c flag clears the directory stack by deleting all of the elements."
+msgstr ""
+"The -c flag clears the directory stack by deleting all of the elements."
+
+#: builtins/pushd.def:664
+msgid "+N   displays the Nth entry counting from the left of the list shown by"
+msgstr ""
+"+N   displays the Nth entry counting from the left of the list shown by"
+
+#: builtins/pushd.def:665 builtins/pushd.def:668
+msgid "     dirs when invoked without options, starting with zero."
+msgstr "     dirs when invoked without options, starting with zero."
+
+#: builtins/pushd.def:667
+msgid ""
+"-N   displays the Nth entry counting from the right of the list shown by"
+msgstr ""
+"-N   displays the Nth entry counting from the right of the list shown by"
+
+#: builtins/pushd.def:673 builtins.c:1302
+msgid "Adds a directory to the top of the directory stack, or rotates"
+msgstr "Adds a directory to the top of the directory stack, or rotates"
+
+#: builtins/pushd.def:674 builtins.c:1303
+msgid "the stack, making the new top of the stack the current working"
+msgstr "the stack, making the new top of the stack the current working"
+
+#: builtins/pushd.def:675 builtins.c:1304
+msgid "directory.  With no arguments, exchanges the top two directories."
+msgstr "directory.  With no arguments, exchanges the top two directories."
+
+#: builtins/pushd.def:677
+msgid "+N   Rotates the stack so that the Nth directory (counting"
+msgstr "+N   Rotates the stack so that the Nth directory (counting"
+
+#: builtins/pushd.def:678
+msgid "     from the left of the list shown by `dirs', starting with"
+msgstr "     from the left of the list shown by ‘dirs’, starting with"
+
+#: builtins/pushd.def:679 builtins/pushd.def:683
+msgid "     zero) is at the top."
+msgstr "     zero) is at the top."
+
+#: builtins/pushd.def:681
+msgid "-N   Rotates the stack so that the Nth directory (counting"
+msgstr "-N   Rotates the stack so that the Nth directory (counting"
+
+#: builtins/pushd.def:682
+msgid "     from the right of the list shown by `dirs', starting with"
+msgstr "     from the right of the list shown by ‘dirs’, starting with"
+
+#: builtins/pushd.def:685
+msgid "-n   suppress the normal change of directory when adding directories"
+msgstr "-n   suppress the normal change of directory when adding directories"
+
+#: builtins/pushd.def:686
+msgid "     to the stack, so only the stack is manipulated."
+msgstr "     to the stack, so only the stack is manipulated."
+
+#: builtins/pushd.def:688
+msgid "dir  adds DIR to the directory stack at the top, making it the"
+msgstr "dir  adds DIR to the directory stack at the top, making it the"
+
+#: builtins/pushd.def:689
+msgid "     new current working directory."
+msgstr "     new current working directory."
+
+#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320
+#: builtins.c:1343
+msgid "You can see the directory stack with the `dirs' command."
+msgstr "You can see the directory stack with the ‘dirs’ command."
+
+#: builtins/pushd.def:696 builtins.c:1328
+msgid "Removes entries from the directory stack.  With no arguments,"
+msgstr "Removes entries from the directory stack.  With no arguments,"
+
+#: builtins/pushd.def:697 builtins.c:1329
+msgid "removes the top directory from the stack, and cd's to the new"
+msgstr "removes the top directory from the stack, and cd's to the new"
+
+#: builtins/pushd.def:698 builtins.c:1330
+msgid "top directory."
+msgstr "top directory."
+
+#: builtins/pushd.def:700
+msgid "+N   removes the Nth entry counting from the left of the list"
+msgstr "+N   removes the Nth entry counting from the left of the list"
+
+#: builtins/pushd.def:701
+msgid "     shown by `dirs', starting with zero.  For example: `popd +0'"
+msgstr "     shown by ‘dirs’, starting with zero.  For example: ‘popd +0’"
+
+#: builtins/pushd.def:702
+msgid "     removes the first directory, `popd +1' the second."
+msgstr "     removes the first directory, ‘popd +1’ the second."
+
+#: builtins/pushd.def:704
+msgid "-N   removes the Nth entry counting from the right of the list"
+msgstr "-N   removes the Nth entry counting from the right of the list"
+
+#: builtins/pushd.def:705
+msgid "     shown by `dirs', starting with zero.  For example: `popd -0'"
+msgstr "     shown by ‘dirs’, starting with zero.  For example: ‘popd -0’"
+
+#: builtins/pushd.def:706
+msgid "     removes the last directory, `popd -1' the next to last."
+msgstr "     removes the last directory, ‘popd -1’ the next to last."
+
+#: builtins/pushd.def:708
+msgid "-n   suppress the normal change of directory when removing directories"
+msgstr "-n   suppress the normal change of directory when removing directories"
+
+#: builtins/pushd.def:709
+msgid "     from the stack, so only the stack is manipulated."
+msgstr "     from the stack, so only the stack is manipulated."
+
+#: builtins/read.def:207
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: invalid timeout specification"
+
+#: builtins/read.def:230
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: invalid file descriptor specification"
+
+#: builtins/read.def:237
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: invalid file descriptor: %s"
+
+#: builtins/read.def:463
+#, c-format
+msgid "read error: %d: %s"
+msgstr "read error: %d: %s"
+
+#: builtins/return.def:63
+msgid "can only `return' from a function or sourced script"
+msgstr "can only ‘return’ from a function or sourced script"
+
+#: builtins/set.def:743
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "cannot simultaneously unset a function and a variable"
+
+#: builtins/set.def:780
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: cannot unset"
+
+#: builtins/set.def:787
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: cannot unset: readonly %s"
+
+#: builtins/set.def:798
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: not an array variable"
+
+#: builtins/setattr.def:165
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: not a function"
+
+#: builtins/shift.def:66 builtins/shift.def:72
+msgid "shift count"
+msgstr "shift count"
+
+#: builtins/shopt.def:226
+msgid "cannot set and unset shell options simultaneously"
+msgstr "cannot set and unset shell options simultaneously"
+
+#: builtins/shopt.def:291
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: invalid shell option name"
+
+#: builtins/source.def:117
+msgid "filename argument required"
+msgstr "filename argument required"
+
+#: builtins/source.def:137
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: file not found"
+
+#: builtins/suspend.def:93
+msgid "cannot suspend"
+msgstr "cannot suspend"
+
+#: builtins/suspend.def:103
+msgid "cannot suspend a login shell"
+msgstr "cannot suspend a login shell"
+
+#: builtins/type.def:231
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s is aliased to ‘%s’\n"
+
+#: builtins/type.def:252
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s is a shell keyword\n"
+
+#: builtins/type.def:272
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s is a function\n"
+
+#: builtins/type.def:297
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s is a shell builtin\n"
+
+#: builtins/type.def:318
+#, c-format
+msgid "%s is %s\n"
+msgstr "%s is %s\n"
+
+#: builtins/type.def:338
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr "%s is hashed (%s)\n"
+
+#: builtins/ulimit.def:332
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: invalid limit argument"
+
+#: builtins/ulimit.def:358
+#, c-format
+msgid "`%c': bad command"
+msgstr "‘%c’: bad command"
+
+#: builtins/ulimit.def:387
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: cannot get limit: %s"
+
+#: builtins/ulimit.def:425
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: cannot modify limit: %s"
+
+#: builtins/umask.def:112
+msgid "octal number"
+msgstr "octal number"
+
+#: builtins/umask.def:226
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "‘%c’: invalid symbolic mode operator"
+
+#: builtins/umask.def:279
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "‘%c’: invalid symbolic mode character"
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "last command: %s\n"
+
+#: error.c:173
+msgid "Aborting..."
+msgstr "Aborting..."
+
+#: error.c:260
+#, c-format
+msgid "%s: warning: "
+msgstr "%s: warning: "
+
+#: error.c:405
+msgid "unknown command error"
+msgstr "unknown command error"
+
+#: error.c:406
+msgid "bad command type"
+msgstr "bad command type"
+
+#: error.c:407
+msgid "bad connector"
+msgstr "bad connector"
+
+#: error.c:408
+msgid "bad jump"
+msgstr "bad jump"
+
+#: error.c:446
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: unbound variable"
+
+#: eval.c:175
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\atimed out waiting for input: auto-logout\n"
+
+#: execute_cmd.c:466
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "cannot redirect standard input from /dev/null: %s"
+
+#: execute_cmd.c:1036
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: ‘%c’: invalid format character"
+
+#: execute_cmd.c:3521
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: restricted: cannot specify ‘/’ in command names"
+
+#: execute_cmd.c:3609
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: command not found"
+
+#: execute_cmd.c:3839
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: bad interpreter"
+
+#: execute_cmd.c:3876
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: cannot execute binary file"
+
+#: execute_cmd.c:3988
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "cannot duplicate fd %d to fd %d"
+
+#: expr.c:239
+msgid "expression recursion level exceeded"
+msgstr "expression recursion level exceeded"
+
+#: expr.c:263
+msgid "recursion stack underflow"
+msgstr "recursion stack underflow"
+
+#: expr.c:374
+msgid "syntax error in expression"
+msgstr "syntax error in expression"
+
+#: expr.c:414
+msgid "attempted assignment to non-variable"
+msgstr "attempted assignment to non-variable"
+
+#: expr.c:435 expr.c:440 expr.c:750
+msgid "division by 0"
+msgstr "division by 0"
+
+#: expr.c:466
+msgid "bug: bad expassign token"
+msgstr "bug: bad expassign token"
+
+#: expr.c:508
+msgid "`:' expected for conditional expression"
+msgstr "‘:’ expected for conditional expression"
+
+#: expr.c:775
+msgid "exponent less than 0"
+msgstr "exponent less than 0"
+
+#: expr.c:819
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "identifier expected after pre-increment or pre-decrement"
+
+#: expr.c:847
+msgid "missing `)'"
+msgstr "missing ‘)’"
+
+#: expr.c:871
+msgid "syntax error: operand expected"
+msgstr "syntax error: operand expected"
+
+#: expr.c:1146
+msgid "invalid number"
+msgstr "invalid number"
+
+#: expr.c:1150
+msgid "invalid arithmetic base"
+msgstr "invalid arithmetic base"
+
+#: expr.c:1170
+msgid "value too great for base"
+msgstr "value too great for base"
+
+#: general.c:60
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: cannot access parent directories"
+
+#: input.c:231
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr "cannot allocate new file descriptor for bash input from fd %d"
+
+#: input.c:239
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr "save_bash_input: buffer already exists for new fd %d"
+
+#: jobs.c:693
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "deleting stopped job %d with process group %ld"
+
+#: jobs.c:1001
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: no such pid"
+
+#: jobs.c:1632 nojobs.c:648
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: pid %ld is not a child of this shell"
+
+#: jobs.c:1815
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: No record of process %ld"
+
+#: jobs.c:2062
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: job %d is stopped"
+
+#: jobs.c:2284
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: job has terminated"
+
+#: jobs.c:2293
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: job %d already in background"
+
+#: jobs.c:3037
+msgid "no job control in this shell"
+msgstr "no job control in this shell"
+
+#: lib/malloc/malloc.c:298
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: failed assertion: %s\n"
+
+#: lib/malloc/malloc.c:314
+#, c-format
+msgid ""
+"\r\n"
+"malloc: %s:%d: assertion botched\r\n"
+msgstr ""
+"\r\n"
+"malloc: %s:%d: assertion botched\r\n"
+
+#: lib/malloc/malloc.c:740
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: block on free list clobbered"
+
+#: lib/malloc/malloc.c:817
+msgid "free: called with already freed block argument"
+msgstr "free: called with already freed block argument"
+
+#: lib/malloc/malloc.c:820
+msgid "free: called with unallocated block argument"
+msgstr "free: called with unallocated block argument"
+
+#: lib/malloc/malloc.c:839
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: underflow detected; mh_nbytes out of range"
+
+#: lib/malloc/malloc.c:845
+msgid "free: start and end chunk sizes differ"
+msgstr "free: start and end chunk sizes differ"
+
+#: lib/malloc/malloc.c:942
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: called with unallocated block argument"
+
+#: lib/malloc/malloc.c:957
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: underflow detected; mh_nbytes out of range"
+
+#: lib/malloc/malloc.c:963
+msgid "realloc: start and end chunk sizes differ"
+msgstr "realloc: start and end chunk sizes differ"
+
+#: lib/malloc/table.c:175
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr "register_alloc: alloc table is full with FIND_ALLOC?\n"
+
+#: lib/malloc/table.c:182
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: %p already in table as allocated?\n"
+
+#: lib/malloc/table.c:218
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: %p already in table as free?\n"
+
+#: lib/malloc/watch.c:46
+msgid "allocated"
+msgstr "allocated"
+
+#: lib/malloc/watch.c:48
+msgid "freed"
+msgstr "freed"
+
+#: lib/malloc/watch.c:50
+msgid "requesting resize"
+msgstr "requesting resize"
+
+#: lib/malloc/watch.c:52
+msgid "just resized"
+msgstr "just resized"
+
+#: lib/malloc/watch.c:54
+msgid "bug: unknown operation"
+msgstr "bug: unknown operation"
+
+#: lib/malloc/watch.c:56
+#, c-format
+msgid "malloc: watch alert: %p %s "
+msgstr "malloc: watch alert: %p %s "
+
+#: lib/sh/fmtulong.c:101
+msgid "invalid base"
+msgstr "invalid base"
+
+#: lib/sh/netopen.c:158
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: host unknown"
+
+#: lib/sh/netopen.c:165
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: invalid service"
+
+#: lib/sh/netopen.c:296
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: bad network path specification"
+
+#: lib/sh/netopen.c:336
+msgid "network operations not supported"
+msgstr "network operations not supported"
+
+#: mailcheck.c:382
+msgid "You have mail in $_"
+msgstr "You have mail in $_"
+
+#: mailcheck.c:407
+msgid "You have new mail in $_"
+msgstr "You have new mail in $_"
+
+#: mailcheck.c:423
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "The mail in %s has been read\n"
+
+#: make_cmd.c:318
+msgid "syntax error: arithmetic expression required"
+msgstr "syntax error: arithmetic expression required"
+
+#: make_cmd.c:320
+msgid "syntax error: `;' unexpected"
+msgstr "syntax error: ‘;’ unexpected"
+
+#: make_cmd.c:321
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "syntax error: ‘((%s))’"
+
+#: make_cmd.c:560
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: bad instruction type %d"
+
+#: make_cmd.c:730
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr "make_redirection: redirection instruction ‘%d’ out of range"
+
+#: parse.y:2726
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "unexpected EOF while looking for matching ‘%c’"
+
+#: parse.y:3011
+msgid "unexpected EOF while looking for `]]'"
+msgstr "unexpected EOF while looking for ‘]]’"
+
+#: parse.y:3016
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "syntax error in conditional expression: unexpected token ‘%s’"
+
+#: parse.y:3020
+msgid "syntax error in conditional expression"
+msgstr "syntax error in conditional expression"
+
+#: parse.y:3098
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "unexpected token ‘%s’, expected ‘)’"
+
+#: parse.y:3102
+msgid "expected `)'"
+msgstr "expected ‘)’"
+
+#: parse.y:3130
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "unexpected argument ‘%s’ to conditional unary operator"
+
+#: parse.y:3134
+msgid "unexpected argument to conditional unary operator"
+msgstr "unexpected argument to conditional unary operator"
+
+#: parse.y:3171
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "unexpected token ‘%s’, conditional binary operator expected"
+
+#: parse.y:3175
+msgid "conditional binary operator expected"
+msgstr "conditional binary operator expected"
+
+#: parse.y:3191
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "unexpected argument ‘%s’ to conditional binary operator"
+
+#: parse.y:3195
+msgid "unexpected argument to conditional binary operator"
+msgstr "unexpected argument to conditional binary operator"
+
+#: parse.y:3206
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "unexpected token ‘%c’ in conditional command"
+
+#: parse.y:3209
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "unexpected token ‘%s’ in conditional command"
+
+#: parse.y:3213
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "unexpected token %d in conditional command"
+
+#: parse.y:4400
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "syntax error near unexpected token ‘%s’"
+
+#: parse.y:4418
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "syntax error near ‘%s’"
+
+#: parse.y:4428
+msgid "syntax error: unexpected end of file"
+msgstr "syntax error: unexpected end of file"
+
+#: parse.y:4428
+msgid "syntax error"
+msgstr "syntax error"
+
+#: parse.y:4490
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "Use “%s” to leave the shell.\n"
+
+#: parse.y:4649
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "unexpected EOF while looking for matching ‘)’"
+
+#: pcomplete.c:988
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "completion: function ‘%s’ not found"
+
+#: pcomplib.c:179
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: NULL COMPSPEC"
+
+#: print_cmd.c:260
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: bad connector ‘%d’"
+
+#: print_cmd.c:1172
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: ‘%c’: invalid format character"
+
+#: redir.c:99
+msgid "file descriptor out of range"
+msgstr "file descriptor out of range"
+
+#: redir.c:141
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: ambiguous redirect"
+
+#: redir.c:145
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: cannot overwrite existing file"
+
+#: redir.c:150
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: restricted: cannot redirect output"
+
+#: redir.c:155
+#, c-format
+msgid "cannot create temp file for here document: %s"
+msgstr "cannot create temp file for here document: %s"
+
+#: redir.c:509
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "/dev/(tcp|udp)/host/port not supported without networking"
+
+#: redir.c:949
+msgid "redirection error: cannot duplicate fd"
+msgstr "redirection error: cannot duplicate fd"
+
+#: shell.c:302
+msgid "could not find /tmp, please create!"
+msgstr "could not find /tmp, please create!"
+
+#: shell.c:306
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp must be a valid directory name"
+
+#: shell.c:839
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: invalid option"
+
+#: shell.c:1590
+msgid "I have no name!"
+msgstr "I have no name!"
+
+#: shell.c:1725
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+
+#: shell.c:1727
+msgid "GNU long options:\n"
+msgstr "GNU long options:\n"
+
+#: shell.c:1731
+msgid "Shell options:\n"
+msgstr "Shell options:\n"
+
+#: shell.c:1732
+msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+
+#: shell.c:1747
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\t-%s or -o option\n"
+
+#: shell.c:1753
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr "Type ‘%s -c “help set”’ for more information about shell options.\n"
+
+#: shell.c:1754
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr "Type ‘%s -c help’ for more information about shell builtin commands.\n"
+
+#: shell.c:1755
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "Use the ‘bashbug’ command to report bugs.\n"
+
+#: sig.c:485
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: invalid operation"
+
+#: subst.c:1011
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "bad substitution: no closing ‘%s’ in %s"
+
+#: subst.c:2020
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: cannot assign list to array member"
+
+#: subst.c:3516 subst.c:3532
+msgid "cannot make pipe for process substitution"
+msgstr "cannot make pipe for process substitution"
+
+#: subst.c:3563
+msgid "cannot make child for process substitution"
+msgstr "cannot make child for process substitution"
+
+#: subst.c:3608
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "cannot open named pipe %s for reading"
+
+#: subst.c:3610
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "cannot open named pipe %s for writing"
+
+#: subst.c:3618
+#, c-format
+msgid "cannout reset nodelay mode for fd %d"
+msgstr "cannout reset nodelay mode for fd %d"
+
+#: subst.c:3628
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "cannot duplicate named pipe %s as fd %d"
+
+#: subst.c:3803
+msgid "cannot make pipe for command substitution"
+msgstr "cannot make pipe for command substitution"
+
+#: subst.c:3832
+msgid "cannot make child for command substitution"
+msgstr "cannot make child for command substitution"
+
+#: subst.c:3849
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: cannot duplicate pipe as fd 1"
+
+#: subst.c:4284
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: parameter null or not set"
+
+#: subst.c:4529
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: substring expression < 0"
+
+#: subst.c:5209
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: bad substitution"
+
+#: subst.c:5283
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: cannot assign in this way"
+
+#: subst.c:6652
+#, c-format
+msgid "no match: %s"
+msgstr "no match: %s"
+
+#: test.c:154
+msgid "argument expected"
+msgstr "argument expected"
+
+#: test.c:163
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: integer expression expected"
+
+#: test.c:361
+msgid "`)' expected"
+msgstr "‘)’ expected"
+
+#: test.c:363
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "‘)’ expected, found %s"
+
+#: test.c:378 test.c:787 test.c:790
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: unary operator expected"
+
+#: test.c:543 test.c:830
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: binary operator expected"
+
+#: test.c:905
+msgid "missing `]'"
+msgstr "missing ‘]’"
+
+#: trap.c:194
+msgid "invalid signal number"
+msgstr "invalid signal number"
+
+#: trap.c:309
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr "run_pending_traps: bad value in trap_list[%d]: %p"
+
+#: trap.c:313
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+
+#: trap.c:349
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: bad signal %d"
+
+#: variables.c:310
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "error importing function definition for ‘%s’"
+
+#: variables.c:670
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "shell level (%d) too high, resetting to 1"
+
+#: variables.c:1610
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: no function context at current scope"
+
+#: variables.c:2709
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: no function context at current scope"
+
+#: variables.c:2923 variables.c:2932
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "invalid character %d in exportstr for %s"
+
+#: variables.c:2938
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "no ‘=’ in exportstr for %s"
+
+#: variables.c:3363
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr "pop_var_context: head of shell_variables not a function context"
+
+#: variables.c:3376
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: no global_variables context"
+
+#: variables.c:3442
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr "pop_scope: head of shell_variables not a temporary environment scope"
+
+#: version.c:82
+msgid "Copyright (C) 2004 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2004 Free Software Foundation, Inc.\n"
+
+#: xmalloc.c:93
+#, c-format
+msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"
+
+#: xmalloc.c:95
+#, c-format
+msgid "xmalloc: cannot allocate %lu bytes"
+msgstr "xmalloc: cannot allocate %lu bytes"
+
+#: xmalloc.c:115
+#, c-format
+msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+msgstr "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+
+#: xmalloc.c:117
+#, c-format
+msgid "xrealloc: cannot allocate %lu bytes"
+msgstr "xrealloc: cannot allocate %lu bytes"
+
+#: xmalloc.c:151
+#, c-format
+msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+
+#: xmalloc.c:153
+#, c-format
+msgid "xmalloc: %s:%d: cannot allocate %lu bytes"
+msgstr "xmalloc: %s:%d: cannot allocate %lu bytes"
+
+#: xmalloc.c:175
+#, c-format
+msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
+msgstr "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
+
+#: xmalloc.c:177
+#, c-format
+msgid "xrealloc: %s:%d: cannot allocate %lu bytes"
+msgstr "xrealloc: %s:%d: cannot allocate %lu bytes"
+
+#: builtins.c:244
+msgid "`alias' with no arguments or with the -p option prints the list"
+msgstr "‘alias’ with no arguments or with the -p option prints the list"
+
+#: builtins.c:245
+msgid "of aliases in the form alias NAME=VALUE on standard output."
+msgstr "of aliases in the form alias NAME=VALUE on standard output."
+
+#: builtins.c:246
+msgid "Otherwise, an alias is defined for each NAME whose VALUE is given."
+msgstr "Otherwise, an alias is defined for each NAME whose VALUE is given."
+
+#: builtins.c:247
+msgid "A trailing space in VALUE causes the next word to be checked for"
+msgstr "A trailing space in VALUE causes the next word to be checked for"
+
+#: builtins.c:248
+msgid "alias substitution when the alias is expanded.  Alias returns"
+msgstr "alias substitution when the alias is expanded.  Alias returns"
+
+#: builtins.c:249
+msgid "true unless a NAME is given for which no alias has been defined."
+msgstr "true unless a NAME is given for which no alias has been defined."
+
+#: builtins.c:257
+msgid ""
+"Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+msgstr ""
+"Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+
+#: builtins.c:258
+msgid "then remove all alias definitions."
+msgstr "then remove all alias definitions."
+
+#: builtins.c:266
+msgid "Bind a key sequence to a Readline function or a macro, or set"
+msgstr "Bind a key sequence to a Readline function or a macro, or set"
+
+#: builtins.c:267
+msgid "a Readline variable.  The non-option argument syntax is equivalent"
+msgstr "a Readline variable.  The non-option argument syntax is equivalent"
+
+#: builtins.c:268
+msgid "to that found in ~/.inputrc, but must be passed as a single argument:"
+msgstr "to that found in ~/.inputrc, but must be passed as a single argument:"
+
+#: builtins.c:269
+msgid "bind '\"\\C-x\\C-r\": re-read-init-file'."
+msgstr "bind '“\\C-x\\C-r”: re-read-init-file'."
+
+#: builtins.c:270
+msgid "bind accepts the following options:"
+msgstr "bind accepts the following options:"
+
+#: builtins.c:271
+msgid ""
+"  -m  keymap         Use `keymap' as the keymap for the duration of this"
+msgstr ""
+"  -m  keymap         Use ‘keymap’ as the keymap for the duration of this"
+
+#: builtins.c:272
+msgid "                     command.  Acceptable keymap names are emacs,"
+msgstr "                     command.  Acceptable keymap names are emacs,"
+
+#: builtins.c:273
+msgid ""
+"                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+msgstr ""
+"                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+
+#: builtins.c:274
+msgid "                     vi-command, and vi-insert."
+msgstr "                     vi-command, and vi-insert."
+
+#: builtins.c:275
+msgid "  -l                 List names of functions."
+msgstr "  -l                 List names of functions."
+
+#: builtins.c:276
+msgid "  -P                 List function names and bindings."
+msgstr "  -P                 List function names and bindings."
+
+#: builtins.c:277
+msgid "  -p                 List functions and bindings in a form that can be"
+msgstr "  -p                 List functions and bindings in a form that can be"
+
+#: builtins.c:278
+msgid "                     reused as input."
+msgstr "                     reused as input."
+
+#: builtins.c:279
+msgid "  -r  keyseq         Remove the binding for KEYSEQ."
+msgstr "  -r  keyseq         Remove the binding for KEYSEQ."
+
+#: builtins.c:280
+msgid "  -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when"
+msgstr "  -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when"
+
+#: builtins.c:281
+msgid "\t\t\t\tKEYSEQ is entered."
+msgstr "\t\t\t\tKEYSEQ is entered."
+
+#: builtins.c:282
+msgid "  -f  filename       Read key bindings from FILENAME."
+msgstr "  -f  filename       Read key bindings from FILENAME."
+
+#: builtins.c:283
+msgid "  -q  function-name  Query about which keys invoke the named function."
+msgstr "  -q  function-name  Query about which keys invoke the named function."
+
+#: builtins.c:284
+msgid ""
+"  -u  function-name  Unbind all keys which are bound to the named function."
+msgstr ""
+"  -u  function-name  Unbind all keys which are bound to the named function."
+
+#: builtins.c:285
+msgid "  -V                 List variable names and values"
+msgstr "  -V                 List variable names and values"
+
+#: builtins.c:286
+msgid "  -v                 List variable names and values in a form that can"
+msgstr "  -v                 List variable names and values in a form that can"
+
+#: builtins.c:287
+msgid "                     be reused as input."
+msgstr "                     be reused as input."
+
+#: builtins.c:288
+msgid ""
+"  -S                 List key sequences that invoke macros and their values"
+msgstr ""
+"  -S                 List key sequences that invoke macros and their values"
+
+#: builtins.c:289
+msgid ""
+"  -s                 List key sequences that invoke macros and their values"
+msgstr ""
+"  -s                 List key sequences that invoke macros and their values"
+
+#: builtins.c:290
+msgid "                     in a form that can be reused as input."
+msgstr "                     in a form that can be reused as input."
+
+#: builtins.c:297
+msgid "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,"
+msgstr "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,"
+
+#: builtins.c:298
+msgid "break N levels."
+msgstr "break N levels."
+
+#: builtins.c:304
+msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop."
+msgstr "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop."
+
+#: builtins.c:305
+msgid "If N is specified, resume at the N-th enclosing loop."
+msgstr "If N is specified, resume at the N-th enclosing loop."
+
+#: builtins.c:311
+msgid "Run a shell builtin.  This is useful when you wish to rename a"
+msgstr "Run a shell builtin.  This is useful when you wish to rename a"
+
+#: builtins.c:312
+msgid "shell builtin to be a function, but need the functionality of the"
+msgstr "shell builtin to be a function, but need the functionality of the"
+
+#: builtins.c:313
+msgid "builtin within the function itself."
+msgstr "builtin within the function itself."
+
+#: builtins.c:334
+msgid "Change the current directory to DIR.  The variable $HOME is the"
+msgstr "Change the current directory to DIR.  The variable $HOME is the"
+
+#: builtins.c:335
+msgid "default DIR.  The variable CDPATH defines the search path for"
+msgstr "default DIR.  The variable CDPATH defines the search path for"
+
+#: builtins.c:336
+msgid "the directory containing DIR.  Alternative directory names in CDPATH"
+msgstr "the directory containing DIR.  Alternative directory names in CDPATH"
+
+#: builtins.c:337
+msgid "are separated by a colon (:).  A null directory name is the same as"
+msgstr "are separated by a colon (:).  A null directory name is the same as"
+
+#: builtins.c:338
+msgid "the current directory, i.e. `.'.  If DIR begins with a slash (/),"
+msgstr "the current directory, i.e. ‘.’.  If DIR begins with a slash (/),"
+
+#: builtins.c:339
+msgid "then CDPATH is not used.  If the directory is not found, and the"
+msgstr "then CDPATH is not used.  If the directory is not found, and the"
+
+#: builtins.c:340
+msgid "shell option `cdable_vars' is set, then try the word as a variable"
+msgstr "shell option ‘cdable_vars’ is set, then try the word as a variable"
+
+#: builtins.c:341
+msgid "name.  If that variable has a value, then cd to the value of that"
+msgstr "name.  If that variable has a value, then cd to the value of that"
+
+#: builtins.c:342
+msgid "variable.  The -P option says to use the physical directory structure"
+msgstr "variable.  The -P option says to use the physical directory structure"
+
+#: builtins.c:343
+msgid ""
+"instead of following symbolic links; the -L option forces symbolic links"
+msgstr ""
+"instead of following symbolic links; the -L option forces symbolic links"
+
+#: builtins.c:344
+msgid "to be followed."
+msgstr "to be followed."
+
+#: builtins.c:350
+msgid "Print the current working directory.  With the -P option, pwd prints"
+msgstr "Print the current working directory.  With the -P option, pwd prints"
+
+#: builtins.c:351
+msgid "the physical directory, without any symbolic links; the -L option"
+msgstr "the physical directory, without any symbolic links; the -L option"
+
+#: builtins.c:352
+msgid "makes pwd follow symbolic links."
+msgstr "makes pwd follow symbolic links."
+
+#: builtins.c:358
+msgid "No effect; the command does nothing.  A zero exit code is returned."
+msgstr "No effect; the command does nothing.  A zero exit code is returned."
+
+#: builtins.c:364
+msgid "Return a successful result."
+msgstr "Return a successful result."
+
+#: builtins.c:370
+msgid "Return an unsuccessful result."
+msgstr "Return an unsuccessful result."
+
+#: builtins.c:376
+msgid "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+msgstr "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+
+#: builtins.c:377
+msgid "function called `ls', and you wish to call the command `ls', you can"
+msgstr "function called ‘ls’, and you wish to call the command ‘ls’, you can"
+
+#: builtins.c:378
+msgid "say \"command ls\".  If the -p option is given, a default value is used"
+msgstr "say “command ls”.  If the -p option is given, a default value is used"
+
+#: builtins.c:379
+msgid "for PATH that is guaranteed to find all of the standard utilities.  If"
+msgstr "for PATH that is guaranteed to find all of the standard utilities.  If"
+
+#: builtins.c:380
+msgid "the -V or -v option is given, a string is printed describing COMMAND."
+msgstr "the -V or -v option is given, a string is printed describing COMMAND."
+
+#: builtins.c:381
+msgid "The -V option produces a more verbose description."
+msgstr "The -V option produces a more verbose description."
+
+#: builtins.c:387
+msgid "Declare variables and/or give them attributes.  If no NAMEs are"
+msgstr "Declare variables and/or give them attributes.  If no NAMEs are"
+
+#: builtins.c:388
+msgid "given, then display the values of variables instead.  The -p option"
+msgstr "given, then display the values of variables instead.  The -p option"
+
+#: builtins.c:389
+msgid "will display the attributes and values of each NAME."
+msgstr "will display the attributes and values of each NAME."
+
+#: builtins.c:391
+msgid "The flags are:"
+msgstr "The flags are:"
+
+#: builtins.c:393
+msgid "  -a\tto make NAMEs arrays (if supported)"
+msgstr "  -a\tto make NAMEs arrays (if supported)"
+
+#: builtins.c:394
+msgid "  -f\tto select from among function names only"
+msgstr "  -f\tto select from among function names only"
+
+#: builtins.c:395
+msgid ""
+"  -F\tto display function names (and line number and source file name if"
+msgstr ""
+"  -F\tto display function names (and line number and source file name if"
+
+#: builtins.c:396
+msgid "\tdebugging) without definitions"
+msgstr "\tdebugging) without definitions"
+
+#: builtins.c:397
+msgid "  -i\tto make NAMEs have the `integer' attribute"
+msgstr "  -i\tto make NAMEs have the ‘integer’ attribute"
+
+#: builtins.c:398
+msgid "  -r\tto make NAMEs readonly"
+msgstr "  -r\tto make NAMEs readonly"
+
+#: builtins.c:399
+msgid "  -t\tto make NAMEs have the `trace' attribute"
+msgstr "  -t\tto make NAMEs have the ‘trace’ attribute"
+
+#: builtins.c:400
+msgid "  -x\tto make NAMEs export"
+msgstr "  -x\tto make NAMEs export"
+
+#: builtins.c:402
+msgid "Variables with the integer attribute have arithmetic evaluation (see"
+msgstr "Variables with the integer attribute have arithmetic evaluation (see"
+
+#: builtins.c:403
+msgid "`let') done when the variable is assigned to."
+msgstr "‘let’) done when the variable is assigned to."
+
+#: builtins.c:405
+msgid "When displaying values of variables, -f displays a function's name"
+msgstr "When displaying values of variables, -f displays a function's name"
+
+#: builtins.c:406
+msgid "and definition.  The -F option restricts the display to function"
+msgstr "and definition.  The -F option restricts the display to function"
+
+#: builtins.c:407
+msgid "name only."
+msgstr "name only."
+
+#: builtins.c:409
+msgid "Using `+' instead of `-' turns off the given attribute instead.  When"
+msgstr "Using ‘+’ instead of ‘-’ turns off the given attribute instead.  When"
+
+#: builtins.c:410
+msgid "used in a function, makes NAMEs local, as with the `local' command."
+msgstr "used in a function, makes NAMEs local, as with the ‘local’ command."
+
+#: builtins.c:416
+msgid "Obsolete.  See `declare'."
+msgstr "Obsolete.  See ‘declare’."
+
+#: builtins.c:422
+msgid "Create a local variable called NAME, and give it VALUE.  LOCAL"
+msgstr "Create a local variable called NAME, and give it VALUE.  LOCAL"
+
+#: builtins.c:423
+msgid "can only be used within a function; it makes the variable NAME"
+msgstr "can only be used within a function; it makes the variable NAME"
+
+#: builtins.c:424
+msgid "have a visible scope restricted to that function and its children."
+msgstr "have a visible scope restricted to that function and its children."
+
+#: builtins.c:431
+msgid "Output the ARGs.  If -n is specified, the trailing newline is"
+msgstr "Output the ARGs.  If -n is specified, the trailing newline is"
+
+#: builtins.c:432
+msgid "suppressed.  If the -e option is given, interpretation of the"
+msgstr "suppressed.  If the -e option is given, interpretation of the"
+
+#: builtins.c:433
+msgid "following backslash-escaped characters is turned on:"
+msgstr "following backslash-escaped characters is turned on:"
+
+#: builtins.c:434
+msgid "\t\\a\talert (bell)"
+msgstr "\t\\a\talert (bell)"
+
+#: builtins.c:435
+msgid "\t\\b\tbackspace"
+msgstr "\t\\b\tbackspace"
+
+#: builtins.c:436
+msgid "\t\\c\tsuppress trailing newline"
+msgstr "\t\\c\tsuppress trailing newline"
+
+#: builtins.c:437
+msgid "\t\\E\tescape character"
+msgstr "\t\\E\tescape character"
+
+#: builtins.c:438
+msgid "\t\\f\tform feed"
+msgstr "\t\\f\tform feed"
+
+#: builtins.c:439
+msgid "\t\\n\tnew line"
+msgstr "\t\\n\tnew line"
+
+#: builtins.c:440
+msgid "\t\\r\tcarriage return"
+msgstr "\t\\r\tcarriage return"
+
+#: builtins.c:441
+msgid "\t\\t\thorizontal tab"
+msgstr "\t\\t\thorizontal tab"
+
+#: builtins.c:442
+msgid "\t\\v\tvertical tab"
+msgstr "\t\\v\tvertical tab"
+
+#: builtins.c:443
+msgid "\t\\\\\tbackslash"
+msgstr "\t\\\\\tbackslash"
+
+#: builtins.c:444
+msgid "\t\\num\tthe character whose ASCII code is NUM (octal)."
+msgstr "\t\\num\tthe character whose ASCII code is NUM (octal)."
+
+#: builtins.c:446
+msgid "You can explicitly turn off the interpretation of the above characters"
+msgstr "You can explicitly turn off the interpretation of the above characters"
+
+#: builtins.c:447
+msgid "with the -E option."
+msgstr "with the -E option."
+
+#: builtins.c:455
+msgid ""
+"Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+msgstr ""
+"Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+
+#: builtins.c:462
+msgid "Enable and disable builtin shell commands.  This allows"
+msgstr "Enable and disable builtin shell commands.  This allows"
+
+#: builtins.c:463
+msgid "you to use a disk command which has the same name as a shell"
+msgstr "you to use a disk command which has the same name as a shell"
+
+#: builtins.c:464
+msgid "builtin without specifying a full pathname.  If -n is used, the"
+msgstr "builtin without specifying a full pathname.  If -n is used, the"
+
+#: builtins.c:465
+msgid "NAMEs become disabled; otherwise NAMEs are enabled.  For example,"
+msgstr "NAMEs become disabled; otherwise NAMEs are enabled.  For example,"
+
+#: builtins.c:466
+msgid "to use the `test' found in $PATH instead of the shell builtin"
+msgstr "to use the ‘test’ found in $PATH instead of the shell builtin"
+
+#: builtins.c:467
+msgid "version, type `enable -n test'.  On systems supporting dynamic"
+msgstr "version, type ‘enable -n test’.  On systems supporting dynamic"
+
+#: builtins.c:468
+msgid "loading, the -f option may be used to load new builtins from the"
+msgstr "loading, the -f option may be used to load new builtins from the"
+
+#: builtins.c:469
+msgid "shared object FILENAME.  The -d option will delete a builtin"
+msgstr "shared object FILENAME.  The -d option will delete a builtin"
+
+#: builtins.c:470
+msgid "previously loaded with -f.  If no non-option names are given, or"
+msgstr "previously loaded with -f.  If no non-option names are given, or"
+
+#: builtins.c:471
+msgid "the -p option is supplied, a list of builtins is printed.  The"
+msgstr "the -p option is supplied, a list of builtins is printed.  The"
+
+#: builtins.c:472
+msgid "-a option means to print every builtin with an indication of whether"
+msgstr "-a option means to print every builtin with an indication of whether"
+
+#: builtins.c:473
+msgid ""
+"or not it is enabled.  The -s option restricts the output to the POSIX.2"
+msgstr ""
+"or not it is enabled.  The -s option restricts the output to the POSIX.2"
+
+#: builtins.c:474
+msgid ""
+"`special' builtins.  The -n option displays a list of all disabled builtins."
+msgstr ""
+"‘special’ builtins.  The -n option displays a list of all disabled builtins."
+
+#: builtins.c:480
+msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+msgstr "Read ARGs as input to the shell and execute the resulting command(s)."
+
+#: builtins.c:486
+msgid "Getopts is used by shell procedures to parse positional parameters."
+msgstr "Getopts is used by shell procedures to parse positional parameters."
+
+#: builtins.c:488
+msgid "OPTSTRING contains the option letters to be recognized; if a letter"
+msgstr "OPTSTRING contains the option letters to be recognized; if a letter"
+
+#: builtins.c:489
+msgid "is followed by a colon, the option is expected to have an argument,"
+msgstr "is followed by a colon, the option is expected to have an argument,"
+
+#: builtins.c:490
+msgid "which should be separated from it by white space."
+msgstr "which should be separated from it by white space."
+
+#: builtins.c:492
+msgid "Each time it is invoked, getopts will place the next option in the"
+msgstr "Each time it is invoked, getopts will place the next option in the"
+
+#: builtins.c:493
+msgid "shell variable $name, initializing name if it does not exist, and"
+msgstr "shell variable $name, initializing name if it does not exist, and"
+
+#: builtins.c:494
+msgid "the index of the next argument to be processed into the shell"
+msgstr "the index of the next argument to be processed into the shell"
+
+#: builtins.c:495
+msgid "variable OPTIND.  OPTIND is initialized to 1 each time the shell or"
+msgstr "variable OPTIND.  OPTIND is initialized to 1 each time the shell or"
+
+#: builtins.c:496
+msgid "a shell script is invoked.  When an option requires an argument,"
+msgstr "a shell script is invoked.  When an option requires an argument,"
+
+#: builtins.c:497
+msgid "getopts places that argument into the shell variable OPTARG."
+msgstr "getopts places that argument into the shell variable OPTARG."
+
+#: builtins.c:499
+msgid "getopts reports errors in one of two ways.  If the first character"
+msgstr "getopts reports errors in one of two ways.  If the first character"
+
+#: builtins.c:500
+msgid "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
+msgstr "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
+
+#: builtins.c:501
+msgid "this mode, no error messages are printed.  If an invalid option is"
+msgstr "this mode, no error messages are printed.  If an invalid option is"
+
+#: builtins.c:502
+msgid "seen, getopts places the option character found into OPTARG.  If a"
+msgstr "seen, getopts places the option character found into OPTARG.  If a"
+
+#: builtins.c:503
+msgid "required argument is not found, getopts places a ':' into NAME and"
+msgstr "required argument is not found, getopts places a ‘:’ into NAME and"
+
+#: builtins.c:504
+msgid "sets OPTARG to the option character found.  If getopts is not in"
+msgstr "sets OPTARG to the option character found.  If getopts is not in"
+
+#: builtins.c:505
+msgid "silent mode, and an invalid option is seen, getopts places '?' into"
+msgstr "silent mode, and an invalid option is seen, getopts places ‘?’ into"
+
+#: builtins.c:506
+msgid "NAME and unsets OPTARG.  If a required argument is not found, a '?'"
+msgstr "NAME and unsets OPTARG.  If a required argument is not found, a ‘?’"
+
+#: builtins.c:507
+msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is"
+msgstr "is placed in NAME, OPTARG is unset, and a diagnostic message is"
+
+#: builtins.c:508
+msgid "printed."
+msgstr "printed."
+
+#: builtins.c:510
+msgid "If the shell variable OPTERR has the value 0, getopts disables the"
+msgstr "If the shell variable OPTERR has the value 0, getopts disables the"
+
+#: builtins.c:511
+msgid "printing of error messages, even if the first character of"
+msgstr "printing of error messages, even if the first character of"
+
+#: builtins.c:512
+msgid "OPTSTRING is not a colon.  OPTERR has the value 1 by default."
+msgstr "OPTSTRING is not a colon.  OPTERR has the value 1 by default."
+
+#: builtins.c:514
+msgid "Getopts normally parses the positional parameters ($0 - $9), but if"
+msgstr "Getopts normally parses the positional parameters ($0 - $9), but if"
+
+#: builtins.c:515
+msgid "more arguments are given, they are parsed instead."
+msgstr "more arguments are given, they are parsed instead."
+
+#: builtins.c:521
+msgid "Exec FILE, replacing this shell with the specified program."
+msgstr "Exec FILE, replacing this shell with the specified program."
+
+#: builtins.c:522
+msgid "If FILE is not specified, the redirections take effect in this"
+msgstr "If FILE is not specified, the redirections take effect in this"
+
+#: builtins.c:523
+msgid "shell.  If the first argument is `-l', then place a dash in the"
+msgstr "shell.  If the first argument is ‘-l’, then place a dash in the"
+
+#: builtins.c:524
+msgid "zeroth arg passed to FILE, as login does.  If the `-c' option"
+msgstr "zeroth arg passed to FILE, as login does.  If the ‘-c’ option"
+
+#: builtins.c:525
+msgid "is supplied, FILE is executed with a null environment.  The `-a'"
+msgstr "is supplied, FILE is executed with a null environment.  The ‘-a’"
+
+#: builtins.c:526
+msgid "option means to make set argv[0] of the executed process to NAME."
+msgstr "option means to make set argv[0] of the executed process to NAME."
+
+#: builtins.c:527
+msgid "If the file cannot be executed and the shell is not interactive,"
+msgstr "If the file cannot be executed and the shell is not interactive,"
+
+#: builtins.c:528
+msgid "then the shell exits, unless the shell option `execfail' is set."
+msgstr "then the shell exits, unless the shell option ‘execfail’ is set."
+
+#: builtins.c:534
+msgid "Exit the shell with a status of N.  If N is omitted, the exit status"
+msgstr "Exit the shell with a status of N.  If N is omitted, the exit status"
+
+#: builtins.c:535
+msgid "is that of the last command executed."
+msgstr "is that of the last command executed."
+
+#: builtins.c:541
+msgid "Logout of a login shell."
+msgstr "Logout of a login shell."
+
+#: builtins.c:548
+msgid ""
+"fc is used to list or edit and re-execute commands from the history list."
+msgstr ""
+"fc is used to list or edit and re-execute commands from the history list."
+
+#: builtins.c:549
+msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+msgstr "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+
+#: builtins.c:550
+msgid "string, which means the most recent command beginning with that"
+msgstr "string, which means the most recent command beginning with that"
+
+#: builtins.c:551
+msgid "string."
+msgstr "string."
+
+#: builtins.c:553
+msgid ""
+"   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+msgstr ""
+"   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+
+#: builtins.c:554
+msgid "      then vi."
+msgstr "      then vi."
+
+#: builtins.c:556
+msgid "   -l means list lines instead of editing."
+msgstr "   -l means list lines instead of editing."
+
+#: builtins.c:557
+msgid "   -n means no line numbers listed."
+msgstr "   -n means no line numbers listed."
+
+#: builtins.c:558
+msgid ""
+"   -r means reverse the order of the lines (making it newest listed first)."
+msgstr ""
+"   -r means reverse the order of the lines (making it newest listed first)."
+
+#: builtins.c:560
+msgid "With the `fc -s [pat=rep ...] [command]' format, the command is"
+msgstr "With the ‘fc -s [pat=rep ...] [command]’ format, the command is"
+
+#: builtins.c:561
+msgid "re-executed after the substitution OLD=NEW is performed."
+msgstr "re-executed after the substitution OLD=NEW is performed."
+
+#: builtins.c:563
+msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'"
+msgstr "A useful alias to use with this is r='fc -s', so that typing ‘r cc’"
+
+#: builtins.c:564
+msgid "runs the last command beginning with `cc' and typing `r' re-executes"
+msgstr "runs the last command beginning with ‘cc’ and typing ‘r’ re-executes"
+
+#: builtins.c:565
+msgid "the last command."
+msgstr "the last command."
+
+#: builtins.c:573
+msgid "Place JOB_SPEC in the foreground, and make it the current job.  If"
+msgstr "Place JOB_SPEC in the foreground, and make it the current job.  If"
+
+#: builtins.c:574
+msgid "JOB_SPEC is not present, the shell's notion of the current job is"
+msgstr "JOB_SPEC is not present, the shell's notion of the current job is"
+
+#: builtins.c:575
+msgid "used."
+msgstr "used."
+
+#: builtins.c:583
+msgid "Place JOB_SPEC in the background, as if it had been started with"
+msgstr "Place JOB_SPEC in the background, as if it had been started with"
+
+#: builtins.c:584
+msgid "`&'.  If JOB_SPEC is not present, the shell's notion of the current"
+msgstr "‘&’.  If JOB_SPEC is not present, the shell's notion of the current"
+
+#: builtins.c:585
+msgid "job is used."
+msgstr "job is used."
+
+#: builtins.c:592
+msgid "For each NAME, the full pathname of the command is determined and"
+msgstr "For each NAME, the full pathname of the command is determined and"
+
+#: builtins.c:593
+msgid "remembered.  If the -p option is supplied, PATHNAME is used as the"
+msgstr "remembered.  If the -p option is supplied, PATHNAME is used as the"
+
+#: builtins.c:594
+msgid "full pathname of NAME, and no path search is performed.  The -r"
+msgstr "full pathname of NAME, and no path search is performed.  The -r"
+
+#: builtins.c:595
+msgid "option causes the shell to forget all remembered locations.  The -d"
+msgstr "option causes the shell to forget all remembered locations.  The -d"
+
+#: builtins.c:596
+msgid "option causes the shell to forget the remembered location of each NAME."
+msgstr ""
+"option causes the shell to forget the remembered location of each NAME."
+
+#: builtins.c:597
+msgid "If the -t option is supplied the full pathname to which each NAME"
+msgstr "If the -t option is supplied the full pathname to which each NAME"
+
+#: builtins.c:598
+msgid "corresponds is printed.  If multiple NAME arguments are supplied with"
+msgstr "corresponds is printed.  If multiple NAME arguments are supplied with"
+
+#: builtins.c:599
+msgid "-t, the NAME is printed before the hashed full pathname.  The -l option"
+msgstr ""
+"-t, the NAME is printed before the hashed full pathname.  The -l option"
+
+#: builtins.c:600
+msgid "causes output to be displayed in a format that may be reused as input."
+msgstr "causes output to be displayed in a format that may be reused as input."
+
+#: builtins.c:601
+msgid ""
+"If no arguments are given, information about remembered commands is "
+"displayed."
+msgstr ""
+"If no arguments are given, information about remembered commands is "
+"displayed."
+
+#: builtins.c:608
+msgid "Display helpful information about builtin commands.  If PATTERN is"
+msgstr "Display helpful information about builtin commands.  If PATTERN is"
+
+#: builtins.c:609
+msgid "specified, gives detailed help on all commands matching PATTERN,"
+msgstr "specified, gives detailed help on all commands matching PATTERN,"
+
+#: builtins.c:610
+msgid "otherwise a list of the builtins is printed.  The -s option"
+msgstr "otherwise a list of the builtins is printed.  The -s option"
+
+#: builtins.c:611
+msgid "restricts the output for each builtin command matching PATTERN to"
+msgstr "restricts the output for each builtin command matching PATTERN to"
+
+#: builtins.c:612
+msgid "a short usage synopsis."
+msgstr "a short usage synopsis."
+
+#: builtins.c:620
+msgid "Display the history list with line numbers.  Lines listed with"
+msgstr "Display the history list with line numbers.  Lines listed with"
+
+#: builtins.c:621
+msgid "with a `*' have been modified.  Argument of N says to list only"
+msgstr "with a ‘*’ have been modified.  Argument of N says to list only"
+
+#: builtins.c:622
+msgid "the last N lines.  The `-c' option causes the history list to be"
+msgstr "the last N lines.  The ‘-c’ option causes the history list to be"
+
+#: builtins.c:623
+msgid "cleared by deleting all of the entries.  The `-d' option deletes"
+msgstr "cleared by deleting all of the entries.  The ‘-d’ option deletes"
+
+#: builtins.c:624
+msgid "the history entry at offset OFFSET.  The `-w' option writes out the"
+msgstr "the history entry at offset OFFSET.  The ‘-w’ option writes out the"
+
+#: builtins.c:625
+msgid "current history to the history file;  `-r' means to read the file and"
+msgstr "current history to the history file;  ‘-r’ means to read the file and"
+
+#: builtins.c:626
+msgid "append the contents to the history list instead.  `-a' means"
+msgstr "append the contents to the history list instead.  ‘-a’ means"
+
+#: builtins.c:627
+msgid "to append history lines from this session to the history file."
+msgstr "to append history lines from this session to the history file."
+
+#: builtins.c:628
+msgid "Argument `-n' means to read all history lines not already read"
+msgstr "Argument ‘-n’ means to read all history lines not already read"
+
+#: builtins.c:629
+msgid "from the history file and append them to the history list."
+msgstr "from the history file and append them to the history list."
+
+#: builtins.c:631
+msgid "If FILENAME is given, then that is used as the history file else"
+msgstr "If FILENAME is given, then that is used as the history file else"
+
+#: builtins.c:632
+msgid "if $HISTFILE has a value, that is used, else ~/.bash_history."
+msgstr "if $HISTFILE has a value, that is used, else ~/.bash_history."
+
+#: builtins.c:633
+msgid "If the -s option is supplied, the non-option ARGs are appended to"
+msgstr "If the -s option is supplied, the non-option ARGs are appended to"
+
+#: builtins.c:634
+msgid "the history list as a single entry.  The -p option means to perform"
+msgstr "the history list as a single entry.  The -p option means to perform"
+
+#: builtins.c:635
+msgid "history expansion on each ARG and display the result, without storing"
+msgstr "history expansion on each ARG and display the result, without storing"
+
+#: builtins.c:636
+msgid "anything in the history list."
+msgstr "anything in the history list."
+
+#: builtins.c:638
+msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used"
+msgstr "If the $HISTTIMEFORMAT variable is set and not null, its value is used"
+
+#: builtins.c:639
+msgid "as a format string for strftime(3) to print the time stamp associated"
+msgstr "as a format string for strftime(3) to print the time stamp associated"
+
+#: builtins.c:640
+msgid ""
+"with each displayed history entry.  No time stamps are printed otherwise."
+msgstr ""
+"with each displayed history entry.  No time stamps are printed otherwise."
+
+#: builtins.c:648
+msgid "Lists the active jobs.  The -l option lists process id's in addition"
+msgstr "Lists the active jobs.  The -l option lists process id's in addition"
+
+#: builtins.c:649
+msgid "to the normal information; the -p option lists process id's only."
+msgstr "to the normal information; the -p option lists process id's only."
+
+#: builtins.c:650
+msgid "If -n is given, only processes that have changed status since the last"
+msgstr "If -n is given, only processes that have changed status since the last"
+
+#: builtins.c:651
+msgid "notification are printed.  JOBSPEC restricts output to that job.  The"
+msgstr "notification are printed.  JOBSPEC restricts output to that job.  The"
+
+#: builtins.c:652
+msgid "-r and -s options restrict output to running and stopped jobs only,"
+msgstr "-r and -s options restrict output to running and stopped jobs only,"
+
+#: builtins.c:653
+msgid "respectively.  Without options, the status of all active jobs is"
+msgstr "respectively.  Without options, the status of all active jobs is"
+
+#: builtins.c:654
+msgid "printed.  If -x is given, COMMAND is run after all job specifications"
+msgstr "printed.  If -x is given, COMMAND is run after all job specifications"
+
+#: builtins.c:655
+msgid ""
+"that appear in ARGS have been replaced with the process ID of that job's"
+msgstr ""
+"that appear in ARGS have been replaced with the process ID of that job's"
+
+#: builtins.c:656
+msgid "process group leader."
+msgstr "process group leader."
+
+#: builtins.c:664
+msgid ""
+"By default, removes each JOBSPEC argument from the table of active jobs."
+msgstr ""
+"By default, removes each JOBSPEC argument from the table of active jobs."
+
+#: builtins.c:665
+msgid ""
+"If the -h option is given, the job is not removed from the table, but is"
+msgstr ""
+"If the -h option is given, the job is not removed from the table, but is"
+
+#: builtins.c:666
+msgid "marked so that SIGHUP is not sent to the job if the shell receives a"
+msgstr "marked so that SIGHUP is not sent to the job if the shell receives a"
+
+#: builtins.c:667
+msgid ""
+"SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all"
+msgstr ""
+"SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all"
+
+#: builtins.c:668
+msgid ""
+"jobs from the job table; the -r option means to remove only running jobs."
+msgstr ""
+"jobs from the job table; the -r option means to remove only running jobs."
+
+#: builtins.c:675
+msgid "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
+msgstr "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
+
+#: builtins.c:676
+msgid "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
+msgstr "SIGSPEC is not present, then SIGTERM is assumed.  An argument of ‘-l’"
+
+#: builtins.c:677
+msgid "lists the signal names; if arguments follow `-l' they are assumed to"
+msgstr "lists the signal names; if arguments follow ‘-l’ they are assumed to"
+
+#: builtins.c:678
+msgid "be signal numbers for which names should be listed.  Kill is a shell"
+msgstr "be signal numbers for which names should be listed.  Kill is a shell"
+
+#: builtins.c:679
+msgid "builtin for two reasons: it allows job IDs to be used instead of"
+msgstr "builtin for two reasons: it allows job IDs to be used instead of"
+
+#: builtins.c:680
+msgid "process IDs, and, if you have reached the limit on processes that"
+msgstr "process IDs, and, if you have reached the limit on processes that"
+
+#: builtins.c:681
+msgid "you can create, you don't have to start a process to kill another one."
+msgstr "you can create, you don't have to start a process to kill another one."
+
+#: builtins.c:687
+msgid "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
+msgstr "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
+
+#: builtins.c:688
+msgid "is done in fixed-width integers with no check for overflow, though"
+msgstr "is done in fixed-width integers with no check for overflow, though"
+
+#: builtins.c:689
+msgid "division by 0 is trapped and flagged as an error.  The following"
+msgstr "division by 0 is trapped and flagged as an error.  The following"
+
+#: builtins.c:690
+msgid "list of operators is grouped into levels of equal-precedence operators."
+msgstr ""
+"list of operators is grouped into levels of equal-precedence operators."
+
+#: builtins.c:691
+msgid "The levels are listed in order of decreasing precedence."
+msgstr "The levels are listed in order of decreasing precedence."
+
+#: builtins.c:693
+msgid "\tid++, id--\tvariable post-increment, post-decrement"
+msgstr "\tid++, id--\tvariable post-increment, post-decrement"
+
+#: builtins.c:694
+msgid "\t++id, --id\tvariable pre-increment, pre-decrement"
+msgstr "\t++id, --id\tvariable pre-increment, pre-decrement"
+
+#: builtins.c:695
+msgid "\t-, +\t\tunary minus, plus"
+msgstr "\t-, +\t\tunary minus, plus"
+
+#: builtins.c:696
+msgid "\t!, ~\t\tlogical and bitwise negation"
+msgstr "\t!, ~\t\tlogical and bitwise negation"
+
+#: builtins.c:697
+msgid "\t**\t\texponentiation"
+msgstr "\t**\t\texponentiation"
+
+#: builtins.c:698
+msgid "\t*, /, %\t\tmultiplication, division, remainder"
+msgstr "\t*, /, %\t\tmultiplication, division, remainder"
+
+#: builtins.c:699
+msgid "\t+, -\t\taddition, subtraction"
+msgstr "\t+, -\t\taddition, subtraction"
+
+#: builtins.c:700
+msgid "\t<<, >>\t\tleft and right bitwise shifts"
+msgstr "\t<<, >>\t\tleft and right bitwise shifts"
+
+#: builtins.c:701
+msgid "\t<=, >=, <, >\tcomparison"
+msgstr "\t<=, >=, <, >\tcomparison"
+
+#: builtins.c:702
+msgid "\t==, !=\t\tequality, inequality"
+msgstr "\t==, !=\t\tequality, inequality"
+
+#: builtins.c:703
+msgid "\t&\t\tbitwise AND"
+msgstr "\t&\t\tbitwise AND"
+
+#: builtins.c:704
+msgid "\t^\t\tbitwise XOR"
+msgstr "\t^\t\tbitwise XOR"
+
+#: builtins.c:705
+msgid "\t|\t\tbitwise OR"
+msgstr "\t|\t\tbitwise OR"
+
+#: builtins.c:706
+msgid "\t&&\t\tlogical AND"
+msgstr "\t&&\t\tlogical AND"
+
+#: builtins.c:707
+msgid "\t||\t\tlogical OR"
+msgstr "\t||\t\tlogical OR"
+
+#: builtins.c:708
+msgid "\texpr ? expr : expr"
+msgstr "\texpr ? expr : expr"
+
+#: builtins.c:709
+msgid "\t\t\tconditional operator"
+msgstr "\t\t\tconditional operator"
+
+#: builtins.c:710
+msgid "\t=, *=, /=, %=,"
+msgstr "\t=, *=, /=, %=,"
+
+#: builtins.c:711
+msgid "\t+=, -=, <<=, >>=,"
+msgstr "\t+=, -=, <<=, >>=,"
+
+#: builtins.c:712
+msgid "\t&=, ^=, |=\tassignment"
+msgstr "\t&=, ^=, |=\tassignment"
+
+#: builtins.c:714
+msgid "Shell variables are allowed as operands.  The name of the variable"
+msgstr "Shell variables are allowed as operands.  The name of the variable"
+
+#: builtins.c:715
+msgid "is replaced by its value (coerced to a fixed-width integer) within"
+msgstr "is replaced by its value (coerced to a fixed-width integer) within"
+
+#: builtins.c:716
+msgid "an expression.  The variable need not have its integer attribute"
+msgstr "an expression.  The variable need not have its integer attribute"
+
+#: builtins.c:717
+msgid "turned on to be used in an expression."
+msgstr "turned on to be used in an expression."
+
+#: builtins.c:719
+msgid "Operators are evaluated in order of precedence.  Sub-expressions in"
+msgstr "Operators are evaluated in order of precedence.  Sub-expressions in"
+
+#: builtins.c:720
+msgid "parentheses are evaluated first and may override the precedence"
+msgstr "parentheses are evaluated first and may override the precedence"
+
+#: builtins.c:721
+msgid "rules above."
+msgstr "rules above."
+
+#: builtins.c:723
+msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned"
+msgstr "If the last ARG evaluates to 0, let returns 1; 0 is returned"
+
+#: builtins.c:724
+msgid "otherwise."
+msgstr "otherwise."
+
+#: builtins.c:730
+msgid ""
+"One line is read from the standard input, or from file descriptor FD if the"
+msgstr ""
+"One line is read from the standard input, or from file descriptor FD if the"
+
+#: builtins.c:731
+msgid ""
+"-u option is supplied, and the first word is assigned to the first NAME,"
+msgstr ""
+"-u option is supplied, and the first word is assigned to the first NAME,"
+
+#: builtins.c:732
+msgid ""
+"the second word to the second NAME, and so on, with leftover words assigned"
+msgstr ""
+"the second word to the second NAME, and so on, with leftover words assigned"
+
+#: builtins.c:733
+msgid ""
+"to the last NAME.  Only the characters found in $IFS are recognized as word"
+msgstr ""
+"to the last NAME.  Only the characters found in $IFS are recognized as word"
+
+#: builtins.c:734
+msgid ""
+"delimiters.  If no NAMEs are supplied, the line read is stored in the REPLY"
+msgstr ""
+"delimiters.  If no NAMEs are supplied, the line read is stored in the REPLY"
+
+#: builtins.c:735
+msgid "variable.  If the -r option is given, this signifies `raw' input, and"
+msgstr "variable.  If the -r option is given, this signifies ‘raw’ input, and"
+
+#: builtins.c:736
+msgid "backslash escaping is disabled.  The -d option causes read to continue"
+msgstr "backslash escaping is disabled.  The -d option causes read to continue"
+
+#: builtins.c:737
+msgid ""
+"until the first character of DELIM is read, rather than newline.  If the -p"
+msgstr ""
+"until the first character of DELIM is read, rather than newline.  If the -p"
+
+#: builtins.c:738
+msgid ""
+"option is supplied, the string PROMPT is output without a trailing newline"
+msgstr ""
+"option is supplied, the string PROMPT is output without a trailing newline"
+
+#: builtins.c:739
+msgid ""
+"before attempting to read.  If -a is supplied, the words read are assigned"
+msgstr ""
+"before attempting to read.  If -a is supplied, the words read are assigned"
+
+#: builtins.c:740
+msgid ""
+"to sequential indices of ARRAY, starting at zero.  If -e is supplied and"
+msgstr ""
+"to sequential indices of ARRAY, starting at zero.  If -e is supplied and"
+
+#: builtins.c:741
+msgid ""
+"the shell is interactive, readline is used to obtain the line.  If -n is"
+msgstr ""
+"the shell is interactive, readline is used to obtain the line.  If -n is"
+
+#: builtins.c:742
+msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS"
+msgstr "supplied with a non-zero NCHARS argument, read returns after NCHARS"
+
+#: builtins.c:743
+msgid "characters have been read.  The -s option causes input coming from a"
+msgstr "characters have been read.  The -s option causes input coming from a"
+
+#: builtins.c:744
+msgid "terminal to not be echoed."
+msgstr "terminal to not be echoed."
+
+#: builtins.c:746
+msgid ""
+"The -t option causes read to time out and return failure if a complete line"
+msgstr ""
+"The -t option causes read to time out and return failure if a complete line"
+
+#: builtins.c:747
+msgid ""
+"of input is not read within TIMEOUT seconds.  If the TMOUT variable is set,"
+msgstr ""
+"of input is not read within TIMEOUT seconds.  If the TMOUT variable is set,"
+
+#: builtins.c:748
+msgid ""
+"its value is the default timeout.  The return code is zero, unless end-of-"
+"file"
+msgstr ""
+"its value is the default timeout.  The return code is zero, unless end-of-"
+"file"
+
+#: builtins.c:749
+msgid ""
+"is encountered, read times out, or an invalid file descriptor is supplied as"
+msgstr ""
+"is encountered, read times out, or an invalid file descriptor is supplied as"
+
+#: builtins.c:750
+msgid "the argument to -u."
+msgstr "the argument to -u."
+
+#: builtins.c:756
+msgid "Causes a function to exit with the return value specified by N.  If N"
+msgstr "Causes a function to exit with the return value specified by N.  If N"
+
+#: builtins.c:757
+msgid "is omitted, the return status is that of the last command."
+msgstr "is omitted, the return status is that of the last command."
+
+#: builtins.c:763
+msgid "    -a  Mark variables which are modified or created for export."
+msgstr "    -a  Mark variables which are modified or created for export."
+
+#: builtins.c:764
+msgid "    -b  Notify of job termination immediately."
+msgstr "    -b  Notify of job termination immediately."
+
+#: builtins.c:765
+msgid "    -e  Exit immediately if a command exits with a non-zero status."
+msgstr "    -e  Exit immediately if a command exits with a non-zero status."
+
+#: builtins.c:766
+msgid "    -f  Disable file name generation (globbing)."
+msgstr "    -f  Disable file name generation (globbing)."
+
+#: builtins.c:767
+msgid "    -h  Remember the location of commands as they are looked up."
+msgstr "    -h  Remember the location of commands as they are looked up."
+
+#: builtins.c:768
+msgid "    -k  All assignment arguments are placed in the environment for a"
+msgstr "    -k  All assignment arguments are placed in the environment for a"
+
+#: builtins.c:769
+msgid "        command, not just those that precede the command name."
+msgstr "        command, not just those that precede the command name."
+
+#: builtins.c:770
+msgid "    -m  Job control is enabled."
+msgstr "    -m  Job control is enabled."
+
+#: builtins.c:771
+msgid "    -n  Read commands but do not execute them."
+msgstr "    -n  Read commands but do not execute them."
+
+#: builtins.c:772
+msgid "    -o option-name"
+msgstr "    -o option-name"
+
+#: builtins.c:773
+msgid "        Set the variable corresponding to option-name:"
+msgstr "        Set the variable corresponding to option-name:"
+
+#: builtins.c:774
+msgid "            allexport    same as -a"
+msgstr "            allexport    same as -a"
+
+#: builtins.c:775
+msgid "            braceexpand  same as -B"
+msgstr "            braceexpand  same as -B"
+
+#: builtins.c:777
+msgid "            emacs        use an emacs-style line editing interface"
+msgstr "            emacs        use an emacs-style line editing interface"
+
+#: builtins.c:779
+msgid "            errexit      same as -e"
+msgstr "            errexit      same as -e"
+
+#: builtins.c:780
+msgid "            errtrace     same as -E"
+msgstr "            errtrace     same as -E"
+
+#: builtins.c:781
+msgid "            functrace    same as -T"
+msgstr "            functrace    same as -T"
+
+#: builtins.c:782
+msgid "            hashall      same as -h"
+msgstr "            hashall      same as -h"
+
+#: builtins.c:784
+msgid "            histexpand   same as -H"
+msgstr "            histexpand   same as -H"
+
+#: builtins.c:787
+msgid "            history      enable command history"
+msgstr "            history      enable command history"
+
+#: builtins.c:789
+msgid "            ignoreeof    the shell will not exit upon reading EOF"
+msgstr "            ignoreeof    the shell will not exit upon reading EOF"
+
+#: builtins.c:790
+msgid "            interactive-comments"
+msgstr "            interactive-comments"
+
+#: builtins.c:791
+msgid ""
+"                         allow comments to appear in interactive commands"
+msgstr ""
+"                         allow comments to appear in interactive commands"
+
+#: builtins.c:792
+msgid "            keyword      same as -k"
+msgstr "            keyword      same as -k"
+
+#: builtins.c:793
+msgid "            monitor      same as -m"
+msgstr "            monitor      same as -m"
+
+#: builtins.c:794
+msgid "            noclobber    same as -C"
+msgstr "            noclobber    same as -C"
+
+#: builtins.c:795
+msgid "            noexec       same as -n"
+msgstr "            noexec       same as -n"
+
+#: builtins.c:796
+msgid "            noglob       same as -f"
+msgstr "            noglob       same as -f"
+
+#: builtins.c:797
+msgid "            nolog        currently accepted but ignored"
+msgstr "            nolog        currently accepted but ignored"
+
+#: builtins.c:798
+msgid "            notify       same as -b"
+msgstr "            notify       same as -b"
+
+#: builtins.c:799
+msgid "            nounset      same as -u"
+msgstr "            nounset      same as -u"
+
+#: builtins.c:800
+msgid "            onecmd       same as -t"
+msgstr "            onecmd       same as -t"
+
+#: builtins.c:801
+msgid "            physical     same as -P"
+msgstr "            physical     same as -P"
+
+#: builtins.c:802
+msgid ""
+"            pipefail     the return value of a pipeline is the status of"
+msgstr ""
+"            pipefail     the return value of a pipeline is the status of"
+
+#: builtins.c:803
+msgid ""
+"                         the last command to exit with a non-zero status,"
+msgstr ""
+"                         the last command to exit with a non-zero status,"
+
+#: builtins.c:804
+msgid ""
+"                         or zero if no command exited with a non-zero status"
+msgstr ""
+"                         or zero if no command exited with a non-zero status"
+
+#: builtins.c:805
+msgid "            posix        change the behavior of bash where the default"
+msgstr "            posix        change the behavior of bash where the default"
+
+#: builtins.c:806
+msgid "                         operation differs from the 1003.2 standard to"
+msgstr "                         operation differs from the 1003.2 standard to"
+
+#: builtins.c:807
+msgid "                         match the standard"
+msgstr "                         match the standard"
+
+#: builtins.c:808
+msgid "            privileged   same as -p"
+msgstr "            privileged   same as -p"
+
+#: builtins.c:809
+msgid "            verbose      same as -v"
+msgstr "            verbose      same as -v"
+
+#: builtins.c:811
+msgid "            vi           use a vi-style line editing interface"
+msgstr "            vi           use a vi-style line editing interface"
+
+#: builtins.c:813
+msgid "            xtrace       same as -x"
+msgstr "            xtrace       same as -x"
+
+#: builtins.c:814
+msgid ""
+"    -p  Turned on whenever the real and effective user ids do not match."
+msgstr ""
+"    -p  Turned on whenever the real and effective user ids do not match."
+
+#: builtins.c:815
+msgid "        Disables processing of the $ENV file and importing of shell"
+msgstr "        Disables processing of the $ENV file and importing of shell"
+
+#: builtins.c:816
+msgid ""
+"        functions.  Turning this option off causes the effective uid and"
+msgstr ""
+"        functions.  Turning this option off causes the effective uid and"
+
+#: builtins.c:817
+msgid "        gid to be set to the real uid and gid."
+msgstr "        gid to be set to the real uid and gid."
+
+#: builtins.c:818
+msgid "    -t  Exit after reading and executing one command."
+msgstr "    -t  Exit after reading and executing one command."
+
+#: builtins.c:819
+msgid "    -u  Treat unset variables as an error when substituting."
+msgstr "    -u  Treat unset variables as an error when substituting."
+
+#: builtins.c:820
+msgid "    -v  Print shell input lines as they are read."
+msgstr "    -v  Print shell input lines as they are read."
+
+#: builtins.c:821
+msgid "    -x  Print commands and their arguments as they are executed."
+msgstr "    -x  Print commands and their arguments as they are executed."
+
+#: builtins.c:823
+msgid "    -B  the shell will perform brace expansion"
+msgstr "    -B  the shell will perform brace expansion"
+
+#: builtins.c:825
+msgid "    -C  If set, disallow existing regular files to be overwritten"
+msgstr "    -C  If set, disallow existing regular files to be overwritten"
+
+#: builtins.c:826
+msgid "        by redirection of output."
+msgstr "        by redirection of output."
+
+#: builtins.c:827
+msgid "    -E  If set, the ERR trap is inherited by shell functions."
+msgstr "    -E  If set, the ERR trap is inherited by shell functions."
+
+#: builtins.c:829
+msgid "    -H  Enable ! style history substitution.  This flag is on"
+msgstr "    -H  Enable ! style history substitution.  This flag is on"
+
+#: builtins.c:830
+msgid "        by default."
+msgstr "        by default."
+
+#: builtins.c:832
+msgid "    -P  If set, do not follow symbolic links when executing commands"
+msgstr "    -P  If set, do not follow symbolic links when executing commands"
+
+#: builtins.c:833
+msgid "        such as cd which change the current directory."
+msgstr "        such as cd which change the current directory."
+
+#: builtins.c:834
+msgid "    -T  If set, the DEBUG trap is inherited by shell functions."
+msgstr "    -T  If set, the DEBUG trap is inherited by shell functions."
+
+#: builtins.c:836
+msgid "Using + rather than - causes these flags to be turned off.  The"
+msgstr "Using + rather than - causes these flags to be turned off.  The"
+
+#: builtins.c:837
+msgid "flags can also be used upon invocation of the shell.  The current"
+msgstr "flags can also be used upon invocation of the shell.  The current"
+
+#: builtins.c:838
+msgid "set of flags may be found in $-.  The remaining n ARGs are positional"
+msgstr "set of flags may be found in $-.  The remaining n ARGs are positional"
+
+#: builtins.c:839
+msgid "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
+msgstr "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
+
+#: builtins.c:840
+msgid "ARGs are given, all shell variables are printed."
+msgstr "ARGs are given, all shell variables are printed."
+
+#: builtins.c:846
+msgid "For each NAME, remove the corresponding variable or function.  Given"
+msgstr "For each NAME, remove the corresponding variable or function.  Given"
+
+#: builtins.c:847
+msgid "the `-v', unset will only act on variables.  Given the `-f' flag,"
+msgstr "the ‘-v’, unset will only act on variables.  Given the ‘-f’ flag,"
+
+#: builtins.c:848
+msgid "unset will only act on functions.  With neither flag, unset first"
+msgstr "unset will only act on functions.  With neither flag, unset first"
+
+#: builtins.c:849
+msgid "tries to unset a variable, and if that fails, then tries to unset a"
+msgstr "tries to unset a variable, and if that fails, then tries to unset a"
+
+#: builtins.c:850
+msgid "function.  Some variables cannot be unset; also see readonly."
+msgstr "function.  Some variables cannot be unset; also see readonly."
+
+#: builtins.c:856
+msgid "NAMEs are marked for automatic export to the environment of"
+msgstr "NAMEs are marked for automatic export to the environment of"
+
+#: builtins.c:857
+msgid "subsequently executed commands.  If the -f option is given,"
+msgstr "subsequently executed commands.  If the -f option is given,"
+
+#: builtins.c:858
+msgid "the NAMEs refer to functions.  If no NAMEs are given, or if `-p'"
+msgstr "the NAMEs refer to functions.  If no NAMEs are given, or if ‘-p’"
+
+#: builtins.c:859
+msgid "is given, a list of all names that are exported in this shell is"
+msgstr "is given, a list of all names that are exported in this shell is"
+
+#: builtins.c:860
+msgid "printed.  An argument of `-n' says to remove the export property"
+msgstr "printed.  An argument of ‘-n’ says to remove the export property"
+
+#: builtins.c:861
+msgid "from subsequent NAMEs.  An argument of `--' disables further option"
+msgstr "from subsequent NAMEs.  An argument of ‘--’ disables further option"
+
+#: builtins.c:862 builtins.c:874
+msgid "processing."
+msgstr "processing."
+
+#: builtins.c:868
+msgid "The given NAMEs are marked readonly and the values of these NAMEs may"
+msgstr "The given NAMEs are marked readonly and the values of these NAMEs may"
+
+#: builtins.c:869
+msgid "not be changed by subsequent assignment.  If the -f option is given,"
+msgstr "not be changed by subsequent assignment.  If the -f option is given,"
+
+#: builtins.c:870
+msgid "then functions corresponding to the NAMEs are so marked.  If no"
+msgstr "then functions corresponding to the NAMEs are so marked.  If no"
+
+#: builtins.c:871
+msgid "arguments are given, or if `-p' is given, a list of all readonly names"
+msgstr "arguments are given, or if ‘-p’ is given, a list of all readonly names"
+
+#: builtins.c:872
+msgid "is printed.  The `-a' option means to treat each NAME as"
+msgstr "is printed.  The ‘-a’ option means to treat each NAME as"
+
+#: builtins.c:873
+msgid "an array variable.  An argument of `--' disables further option"
+msgstr "an array variable.  An argument of ‘--’ disables further option"
+
+#: builtins.c:880
+msgid "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+msgstr "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+
+#: builtins.c:881
+msgid "not given, it is assumed to be 1."
+msgstr "not given, it is assumed to be 1."
+
+#: builtins.c:887 builtins.c:896
+msgid "Read and execute commands from FILENAME and return.  The pathnames"
+msgstr "Read and execute commands from FILENAME and return.  The pathnames"
+
+#: builtins.c:888 builtins.c:897
+msgid "in $PATH are used to find the directory containing FILENAME.  If any"
+msgstr "in $PATH are used to find the directory containing FILENAME.  If any"
+
+#: builtins.c:889 builtins.c:898
+msgid "ARGUMENTS are supplied, they become the positional parameters when"
+msgstr "ARGUMENTS are supplied, they become the positional parameters when"
+
+#: builtins.c:890 builtins.c:899
+msgid "FILENAME is executed."
+msgstr "FILENAME is executed."
+
+#: builtins.c:906
+msgid "Suspend the execution of this shell until it receives a SIGCONT"
+msgstr "Suspend the execution of this shell until it receives a SIGCONT"
+
+#: builtins.c:907
+msgid "signal.  The `-f' if specified says not to complain about this"
+msgstr "signal.  The ‘-f’ if specified says not to complain about this"
+
+#: builtins.c:908
+msgid "being a login shell if it is; just suspend anyway."
+msgstr "being a login shell if it is; just suspend anyway."
+
+#: builtins.c:915
+msgid "Exits with a status of 0 (true) or 1 (false) depending on"
+msgstr "Exits with a status of 0 (true) or 1 (false) depending on"
+
+#: builtins.c:916
+msgid "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
+msgstr "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
+
+#: builtins.c:917
+msgid "expressions are often used to examine the status of a file.  There"
+msgstr "expressions are often used to examine the status of a file.  There"
+
+#: builtins.c:918
+msgid "are string operators as well, and numeric comparison operators."
+msgstr "are string operators as well, and numeric comparison operators."
+
+#: builtins.c:920
+msgid "File operators:"
+msgstr "File operators:"
+
+#: builtins.c:922
+msgid "    -a FILE        True if file exists."
+msgstr "    -a FILE        True if file exists."
+
+#: builtins.c:923
+msgid "    -b FILE        True if file is block special."
+msgstr "    -b FILE        True if file is block special."
+
+#: builtins.c:924
+msgid "    -c FILE        True if file is character special."
+msgstr "    -c FILE        True if file is character special."
+
+#: builtins.c:925
+msgid "    -d FILE        True if file is a directory."
+msgstr "    -d FILE        True if file is a directory."
+
+#: builtins.c:926
+msgid "    -e FILE        True if file exists."
+msgstr "    -e FILE        True if file exists."
+
+#: builtins.c:927
+msgid "    -f FILE        True if file exists and is a regular file."
+msgstr "    -f FILE        True if file exists and is a regular file."
+
+#: builtins.c:928
+msgid "    -g FILE        True if file is set-group-id."
+msgstr "    -g FILE        True if file is set-group-id."
+
+#: builtins.c:929
+msgid "    -h FILE        True if file is a symbolic link."
+msgstr "    -h FILE        True if file is a symbolic link."
+
+#: builtins.c:930
+msgid "    -L FILE        True if file is a symbolic link."
+msgstr "    -L FILE        True if file is a symbolic link."
+
+#: builtins.c:931
+msgid "    -k FILE        True if file has its `sticky' bit set."
+msgstr "    -k FILE        True if file has its ‘sticky’ bit set."
+
+#: builtins.c:932
+msgid "    -p FILE        True if file is a named pipe."
+msgstr "    -p FILE        True if file is a named pipe."
+
+#: builtins.c:933
+msgid "    -r FILE        True if file is readable by you."
+msgstr "    -r FILE        True if file is readable by you."
+
+#: builtins.c:934
+msgid "    -s FILE        True if file exists and is not empty."
+msgstr "    -s FILE        True if file exists and is not empty."
+
+#: builtins.c:935
+msgid "    -S FILE        True if file is a socket."
+msgstr "    -S FILE        True if file is a socket."
+
+#: builtins.c:936
+msgid "    -t FD          True if FD is opened on a terminal."
+msgstr "    -t FD          True if FD is opened on a terminal."
+
+#: builtins.c:937
+msgid "    -u FILE        True if the file is set-user-id."
+msgstr "    -u FILE        True if the file is set-user-id."
+
+#: builtins.c:938
+msgid "    -w FILE        True if the file is writable by you."
+msgstr "    -w FILE        True if the file is writable by you."
+
+#: builtins.c:939
+msgid "    -x FILE        True if the file is executable by you."
+msgstr "    -x FILE        True if the file is executable by you."
+
+#: builtins.c:940
+msgid "    -O FILE        True if the file is effectively owned by you."
+msgstr "    -O FILE        True if the file is effectively owned by you."
+
+#: builtins.c:941
+msgid "    -G FILE        True if the file is effectively owned by your group."
+msgstr ""
+"    -G FILE        True if the file is effectively owned by your group."
+
+#: builtins.c:942
+msgid ""
+"    -N FILE        True if the file has been modified since it was last read."
+msgstr ""
+"    -N FILE        True if the file has been modified since it was last read."
+
+#: builtins.c:944
+msgid "  FILE1 -nt FILE2  True if file1 is newer than file2 (according to"
+msgstr "  FILE1 -nt FILE2  True if file1 is newer than file2 (according to"
+
+#: builtins.c:945
+msgid "                   modification date)."
+msgstr "                   modification date)."
+
+#: builtins.c:947
+msgid "  FILE1 -ot FILE2  True if file1 is older than file2."
+msgstr "  FILE1 -ot FILE2  True if file1 is older than file2."
+
+#: builtins.c:949
+msgid "  FILE1 -ef FILE2  True if file1 is a hard link to file2."
+msgstr "  FILE1 -ef FILE2  True if file1 is a hard link to file2."
+
+#: builtins.c:951
+msgid "String operators:"
+msgstr "String operators:"
+
+#: builtins.c:953
+msgid "    -z STRING      True if string is empty."
+msgstr "    -z STRING      True if string is empty."
+
+#: builtins.c:955
+msgid "    -n STRING"
+msgstr "    -n STRING"
+
+#: builtins.c:956
+msgid "    STRING         True if string is not empty."
+msgstr "    STRING         True if string is not empty."
+
+#: builtins.c:958
+msgid "    STRING1 = STRING2"
+msgstr "    STRING1 = STRING2"
+
+#: builtins.c:959
+msgid "                   True if the strings are equal."
+msgstr "                   True if the strings are equal."
+
+#: builtins.c:960
+msgid "    STRING1 != STRING2"
+msgstr "    STRING1 != STRING2"
+
+#: builtins.c:961
+msgid "                   True if the strings are not equal."
+msgstr "                   True if the strings are not equal."
+
+#: builtins.c:962
+msgid "    STRING1 < STRING2"
+msgstr "    STRING1 < STRING2"
+
+#: builtins.c:963
+msgid ""
+"                   True if STRING1 sorts before STRING2 lexicographically."
+msgstr ""
+"                   True if STRING1 sorts before STRING2 lexicographically."
+
+#: builtins.c:964
+msgid "    STRING1 > STRING2"
+msgstr "    STRING1 > STRING2"
+
+#: builtins.c:965
+msgid ""
+"                   True if STRING1 sorts after STRING2 lexicographically."
+msgstr ""
+"                   True if STRING1 sorts after STRING2 lexicographically."
+
+#: builtins.c:967
+msgid "Other operators:"
+msgstr "Other operators:"
+
+#: builtins.c:969
+msgid "    -o OPTION      True if the shell option OPTION is enabled."
+msgstr "    -o OPTION      True if the shell option OPTION is enabled."
+
+#: builtins.c:970
+msgid "    ! EXPR         True if expr is false."
+msgstr "    ! EXPR         True if expr is false."
+
+#: builtins.c:971
+msgid "    EXPR1 -a EXPR2 True if both expr1 AND expr2 are true."
+msgstr "    EXPR1 -a EXPR2 True if both expr1 AND expr2 are true."
+
+#: builtins.c:972
+msgid "    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true."
+msgstr "    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true."
+
+#: builtins.c:974
+msgid "    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,"
+msgstr "    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,"
+
+#: builtins.c:975
+msgid "                   -lt, -le, -gt, or -ge."
+msgstr "                   -lt, -le, -gt, or -ge."
+
+#: builtins.c:977
+msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
+msgstr "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
+
+#: builtins.c:978
+msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+msgstr "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+
+#: builtins.c:979
+msgid "than ARG2."
+msgstr "than ARG2."
+
+#: builtins.c:985
+msgid "This is a synonym for the \"test\" builtin, but the last"
+msgstr "This is a synonym for the “test” builtin, but the last"
+
+#: builtins.c:986
+msgid "argument must be a literal `]', to match the opening `['."
+msgstr "argument must be a literal ‘]’, to match the opening ‘[’."
+
+#: builtins.c:992
+msgid "Print the accumulated user and system times for processes run from"
+msgstr "Print the accumulated user and system times for processes run from"
+
+#: builtins.c:993
+msgid "the shell."
+msgstr "the shell."
+
+#: builtins.c:999
+msgid "The command ARG is to be read and executed when the shell receives"
+msgstr "The command ARG is to be read and executed when the shell receives"
+
+#: builtins.c:1000
+msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
+msgstr "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
+
+#: builtins.c:1001
+msgid "reset to their original values.  If ARG is the null string each"
+msgstr "reset to their original values.  If ARG is the null string each"
+
+#: builtins.c:1002
+msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
+msgstr "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
+
+#: builtins.c:1003
+msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
+msgstr "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
+
+#: builtins.c:1004
+msgid "the shell.  If a SIGNAL_SPEC is DEBUG, ARG is executed after every"
+msgstr "the shell.  If a SIGNAL_SPEC is DEBUG, ARG is executed after every"
+
+#: builtins.c:1005
+msgid "command.  If ARG is `-p' then the trap commands associated with"
+msgstr "command.  If ARG is ‘-p’ then the trap commands associated with"
+
+#: builtins.c:1006
+msgid "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
+msgstr "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
+
+#: builtins.c:1007
+msgid "only `-p' is given, trap prints the list of commands associated with"
+msgstr "only ‘-p’ is given, trap prints the list of commands associated with"
+
+#: builtins.c:1008
+msgid ""
+"each signal number.  Each SIGNAL_SPEC is either a signal name in <signal.h>"
+msgstr ""
+"each signal number.  Each SIGNAL_SPEC is either a signal name in <signal.h>"
+
+#: builtins.c:1009
+msgid "or a signal number.  `trap -l' prints a list of signal names and their"
+msgstr "or a signal number.  ‘trap -l’ prints a list of signal names and their"
+
+#: builtins.c:1010
+msgid "corresponding numbers.  Note that a signal can be sent to the shell"
+msgstr "corresponding numbers.  Note that a signal can be sent to the shell"
+
+#: builtins.c:1011
+msgid "with \"kill -signal $$\"."
+msgstr "with “kill -signal $$”."
+
+#: builtins.c:1017
+msgid "For each NAME, indicate how it would be interpreted if used as a"
+msgstr "For each NAME, indicate how it would be interpreted if used as a"
+
+#: builtins.c:1018
+msgid "command name."
+msgstr "command name."
+
+#: builtins.c:1020
+msgid "If the -t option is used, `type' outputs a single word which is one of"
+msgstr "If the -t option is used, ‘type’ outputs a single word which is one of"
+
+#: builtins.c:1021
+msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+msgstr "‘alias’, ‘keyword’, ‘function’, ‘builtin’, ‘file’ or ‘’, if NAME is an"
+
+#: builtins.c:1022
+msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
+msgstr "alias, shell reserved word, shell function, shell builtin, disk file,"
+
+#: builtins.c:1023
+msgid "or unfound, respectively."
+msgstr "or unfound, respectively."
+
+#: builtins.c:1025
+msgid "If the -p flag is used, `type' either returns the name of the disk"
+msgstr "If the -p flag is used, ‘type’ either returns the name of the disk"
+
+#: builtins.c:1026
+msgid "file that would be executed, or nothing if `type -t NAME' would not"
+msgstr "file that would be executed, or nothing if ‘type -t NAME’ would not"
+
+#: builtins.c:1027
+msgid "return `file'."
+msgstr "return ‘file’."
+
+#: builtins.c:1029
+msgid "If the -a flag is used, `type' displays all of the places that contain"
+msgstr "If the -a flag is used, ‘type’ displays all of the places that contain"
+
+#: builtins.c:1030
+msgid "an executable named `file'.  This includes aliases, builtins, and"
+msgstr "an executable named ‘file’.  This includes aliases, builtins, and"
+
+#: builtins.c:1031
+msgid "functions, if and only if the -p flag is not also used."
+msgstr "functions, if and only if the -p flag is not also used."
+
+#: builtins.c:1033
+msgid "The -f flag suppresses shell function lookup."
+msgstr "The -f flag suppresses shell function lookup."
+
+#: builtins.c:1035
+msgid "The -P flag forces a PATH search for each NAME, even if it is an alias,"
+msgstr ""
+"The -P flag forces a PATH search for each NAME, even if it is an alias,"
+
+#: builtins.c:1036
+msgid "builtin, or function, and returns the name of the disk file that would"
+msgstr "builtin, or function, and returns the name of the disk file that would"
+
+#: builtins.c:1037
+msgid "be executed."
+msgstr "be executed."
+
+#: builtins.c:1044
+msgid "Ulimit provides control over the resources available to processes"
+msgstr "Ulimit provides control over the resources available to processes"
+
+#: builtins.c:1045
+msgid "started by the shell, on systems that allow such control.  If an"
+msgstr "started by the shell, on systems that allow such control.  If an"
+
+#: builtins.c:1046
+msgid "option is given, it is interpreted as follows:"
+msgstr "option is given, it is interpreted as follows:"
+
+#: builtins.c:1048
+msgid "    -S\tuse the `soft' resource limit"
+msgstr "    -S\tuse the ‘soft’ resource limit"
+
+#: builtins.c:1049
+msgid "    -H\tuse the `hard' resource limit"
+msgstr "    -H\tuse the ‘hard’ resource limit"
+
+#: builtins.c:1050
+msgid "    -a\tall current limits are reported"
+msgstr "    -a\tall current limits are reported"
+
+#: builtins.c:1051
+msgid "    -c\tthe maximum size of core files created"
+msgstr "    -c\tthe maximum size of core files created"
+
+#: builtins.c:1052
+msgid "    -d\tthe maximum size of a process's data segment"
+msgstr "    -d\tthe maximum size of a process's data segment"
+
+#: builtins.c:1053
+msgid "    -f\tthe maximum size of files created by the shell"
+msgstr "    -f\tthe maximum size of files created by the shell"
+
+#: builtins.c:1054
+msgid "    -l\tthe maximum size a process may lock into memory"
+msgstr "    -l\tthe maximum size a process may lock into memory"
+
+#: builtins.c:1055
+msgid "    -m\tthe maximum resident set size"
+msgstr "    -m\tthe maximum resident set size"
+
+#: builtins.c:1056
+msgid "    -n\tthe maximum number of open file descriptors"
+msgstr "    -n\tthe maximum number of open file descriptors"
+
+#: builtins.c:1057
+msgid "    -p\tthe pipe buffer size"
+msgstr "    -p\tthe pipe buffer size"
+
+#: builtins.c:1058
+msgid "    -s\tthe maximum stack size"
+msgstr "    -s\tthe maximum stack size"
+
+#: builtins.c:1059
+msgid "    -t\tthe maximum amount of cpu time in seconds"
+msgstr "    -t\tthe maximum amount of cpu time in seconds"
+
+#: builtins.c:1060
+msgid "    -u\tthe maximum number of user processes"
+msgstr "    -u\tthe maximum number of user processes"
+
+#: builtins.c:1061
+msgid "    -v\tthe size of virtual memory"
+msgstr "    -v\tthe size of virtual memory"
+
+#: builtins.c:1063
+msgid "If LIMIT is given, it is the new value of the specified resource;"
+msgstr "If LIMIT is given, it is the new value of the specified resource;"
+
+#: builtins.c:1064
+msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for"
+msgstr "the special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ stand for"
+
+#: builtins.c:1065
+msgid ""
+"the current soft limit, the current hard limit, and no limit, respectively."
+msgstr ""
+"the current soft limit, the current hard limit, and no limit, respectively."
+
+#: builtins.c:1066
+msgid "Otherwise, the current value of the specified resource is printed."
+msgstr "Otherwise, the current value of the specified resource is printed."
+
+#: builtins.c:1067
+msgid "If no option is given, then -f is assumed.  Values are in 1024-byte"
+msgstr "If no option is given, then -f is assumed.  Values are in 1024-byte"
+
+#: builtins.c:1068
+msgid "increments, except for -t, which is in seconds, -p, which is in"
+msgstr "increments, except for -t, which is in seconds, -p, which is in"
+
+#: builtins.c:1069
+msgid "increments of 512 bytes, and -u, which is an unscaled number of"
+msgstr "increments of 512 bytes, and -u, which is an unscaled number of"
+
+#: builtins.c:1070
+msgid "processes."
+msgstr "processes."
+
+#: builtins.c:1077
+msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+msgstr "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+
+#: builtins.c:1078
+msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+msgstr "‘-S’ is supplied, the current value of the mask is printed.  The ‘-S’"
+
+#: builtins.c:1079
+msgid "option makes the output symbolic; otherwise an octal number is output."
+msgstr "option makes the output symbolic; otherwise an octal number is output."
+
+#: builtins.c:1080
+msgid "If `-p' is supplied, and MODE is omitted, the output is in a form"
+msgstr "If ‘-p’ is supplied, and MODE is omitted, the output is in a form"
+
+#: builtins.c:1081
+msgid "that may be used as input.  If MODE begins with a digit, it is"
+msgstr "that may be used as input.  If MODE begins with a digit, it is"
+
+#: builtins.c:1082
+msgid "interpreted as an octal number, otherwise it is a symbolic mode string"
+msgstr "interpreted as an octal number, otherwise it is a symbolic mode string"
+
+#: builtins.c:1083
+msgid "like that accepted by chmod(1)."
+msgstr "like that accepted by chmod(1)."
+
+#: builtins.c:1090 builtins.c:1102
+msgid "Wait for the specified process and report its termination status.  If"
+msgstr "Wait for the specified process and report its termination status.  If"
+
+#: builtins.c:1091 builtins.c:1103
+msgid "N is not given, all currently active child processes are waited for,"
+msgstr "N is not given, all currently active child processes are waited for,"
+
+#: builtins.c:1092
+msgid "and the return code is zero.  N may be a process ID or a job"
+msgstr "and the return code is zero.  N may be a process ID or a job"
+
+#: builtins.c:1093
+msgid "specification; if a job spec is given, all processes in the job's"
+msgstr "specification; if a job spec is given, all processes in the job's"
+
+#: builtins.c:1094
+msgid "pipeline are waited for."
+msgstr "pipeline are waited for."
+
+#: builtins.c:1104
+msgid "and the return code is zero.  N is a process ID; if it is not given,"
+msgstr "and the return code is zero.  N is a process ID; if it is not given,"
+
+#: builtins.c:1105
+msgid "all child processes of the shell are waited for."
+msgstr "all child processes of the shell are waited for."
+
+#: builtins.c:1112
+msgid "The `for' loop executes a sequence of commands for each member in a"
+msgstr "The ‘for’ loop executes a sequence of commands for each member in a"
+
+#: builtins.c:1113
+msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+msgstr "list of items.  If ‘in WORDS ...;’ is not present, then ‘in “$@”’ is"
+
+#: builtins.c:1114
+msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
+msgstr "assumed.  For each element in WORDS, NAME is set to that element, and"
+
+#: builtins.c:1115
+msgid "the COMMANDS are executed."
+msgstr "the COMMANDS are executed."
+
+#: builtins.c:1121
+msgid "Equivalent to"
+msgstr "Equivalent to"
+
+#: builtins.c:1122
+msgid "\t(( EXP1 ))"
+msgstr "\t(( EXP1 ))"
+
+#: builtins.c:1123
+msgid "\twhile (( EXP2 )); do"
+msgstr "\twhile (( EXP2 )); do"
+
+#: builtins.c:1124
+msgid "\t\tCOMMANDS"
+msgstr "\t\tCOMMANDS"
+
+#: builtins.c:1125
+msgid "\t\t(( EXP3 ))"
+msgstr "\t\t(( EXP3 ))"
+
+#: builtins.c:1126
+msgid "\tdone"
+msgstr "\tdone"
+
+#: builtins.c:1127
+msgid "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
+msgstr "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
+
+#: builtins.c:1128
+msgid "omitted, it behaves as if it evaluates to 1."
+msgstr "omitted, it behaves as if it evaluates to 1."
+
+#: builtins.c:1134
+msgid "The WORDS are expanded, generating a list of words.  The"
+msgstr "The WORDS are expanded, generating a list of words.  The"
+
+#: builtins.c:1135
+msgid "set of expanded words is printed on the standard error, each"
+msgstr "set of expanded words is printed on the standard error, each"
+
+#: builtins.c:1136
+msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
+msgstr "preceded by a number.  If ‘in WORDS’ is not present, ‘in “$@”’"
+
+#: builtins.c:1137
+msgid "is assumed.  The PS3 prompt is then displayed and a line read"
+msgstr "is assumed.  The PS3 prompt is then displayed and a line read"
+
+#: builtins.c:1138
+msgid "from the standard input.  If the line consists of the number"
+msgstr "from the standard input.  If the line consists of the number"
+
+#: builtins.c:1139
+msgid "corresponding to one of the displayed words, then NAME is set"
+msgstr "corresponding to one of the displayed words, then NAME is set"
+
+#: builtins.c:1140
+msgid "to that word.  If the line is empty, WORDS and the prompt are"
+msgstr "to that word.  If the line is empty, WORDS and the prompt are"
+
+#: builtins.c:1141
+msgid "redisplayed.  If EOF is read, the command completes.  Any other"
+msgstr "redisplayed.  If EOF is read, the command completes.  Any other"
+
+#: builtins.c:1142
+msgid "value read causes NAME to be set to null.  The line read is saved"
+msgstr "value read causes NAME to be set to null.  The line read is saved"
+
+#: builtins.c:1143
+msgid "in the variable REPLY.  COMMANDS are executed after each selection"
+msgstr "in the variable REPLY.  COMMANDS are executed after each selection"
+
+#: builtins.c:1144
+msgid "until a break command is executed."
+msgstr "until a break command is executed."
+
+#: builtins.c:1150
+msgid "Execute PIPELINE and print a summary of the real time, user CPU time,"
+msgstr "Execute PIPELINE and print a summary of the real time, user CPU time,"
+
+#: builtins.c:1151
+msgid "and system CPU time spent executing PIPELINE when it terminates."
+msgstr "and system CPU time spent executing PIPELINE when it terminates."
+
+#: builtins.c:1152
+msgid "The return status is the return status of PIPELINE.  The `-p' option"
+msgstr "The return status is the return status of PIPELINE.  The ‘-p’ option"
+
+#: builtins.c:1153
+msgid "prints the timing summary in a slightly different format.  This uses"
+msgstr "prints the timing summary in a slightly different format.  This uses"
+
+#: builtins.c:1154
+msgid "the value of the TIMEFORMAT variable as the output format."
+msgstr "the value of the TIMEFORMAT variable as the output format."
+
+#: builtins.c:1160
+msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
+msgstr "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
+
+#: builtins.c:1161
+msgid "`|' is used to separate multiple patterns."
+msgstr "‘|’ is used to separate multiple patterns."
+
+#: builtins.c:1167
+msgid ""
+"The if COMMANDS are executed.  If the exit status is zero, then the then"
+msgstr ""
+"The if COMMANDS are executed.  If the exit status is zero, then the then"
+
+#: builtins.c:1168
+msgid ""
+"COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+msgstr ""
+"COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+
+#: builtins.c:1169
+msgid ""
+"in turn, and if the exit status is zero, the corresponding then COMMANDS"
+msgstr ""
+"in turn, and if the exit status is zero, the corresponding then COMMANDS"
+
+#: builtins.c:1170
+msgid ""
+"are executed and the if command completes.  Otherwise, the else COMMANDS"
+msgstr ""
+"are executed and the if command completes.  Otherwise, the else COMMANDS"
+
+#: builtins.c:1171
+msgid ""
+"are executed, if present.  The exit status is the exit status of the last"
+msgstr ""
+"are executed, if present.  The exit status is the exit status of the last"
+
+#: builtins.c:1172
+msgid "command executed, or zero if no condition tested true."
+msgstr "command executed, or zero if no condition tested true."
+
+#: builtins.c:1178 builtins.c:1185
+msgid "Expand and execute COMMANDS as long as the final command in the"
+msgstr "Expand and execute COMMANDS as long as the final command in the"
+
+#: builtins.c:1179
+msgid "`while' COMMANDS has an exit status of zero."
+msgstr "‘while’ COMMANDS has an exit status of zero."
+
+#: builtins.c:1186
+msgid "`until' COMMANDS has an exit status which is not zero."
+msgstr "‘until’ COMMANDS has an exit status which is not zero."
+
+#: builtins.c:1192
+msgid "Create a simple command invoked by NAME which runs COMMANDS."
+msgstr "Create a simple command invoked by NAME which runs COMMANDS."
+
+#: builtins.c:1193
+msgid "Arguments on the command line along with NAME are passed to the"
+msgstr "Arguments on the command line along with NAME are passed to the"
+
+#: builtins.c:1194
+msgid "function as $0 .. $n."
+msgstr "function as $0 .. $n."
+
+#: builtins.c:1200
+msgid "Run a set of commands in a group.  This is one way to redirect an"
+msgstr "Run a set of commands in a group.  This is one way to redirect an"
+
+#: builtins.c:1201
+msgid "entire set of commands."
+msgstr "entire set of commands."
+
+#: builtins.c:1207
+msgid "This is similar to the `fg' command.  Resume a stopped or background"
+msgstr "This is similar to the ‘fg’ command.  Resume a stopped or background"
+
+#: builtins.c:1208
+msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
+msgstr "job.  If you specifiy DIGITS, then that job is used.  If you specify"
+
+#: builtins.c:1209
+msgid "WORD, then the job whose name begins with WORD is used.  Following the"
+msgstr "WORD, then the job whose name begins with WORD is used.  Following the"
+
+#: builtins.c:1210
+msgid "job specification with a `&' places the job in the background."
+msgstr "job specification with a ‘&’ places the job in the background."
+
+#: builtins.c:1216
+msgid "The EXPRESSION is evaluated according to the rules for arithmetic"
+msgstr "The EXPRESSION is evaluated according to the rules for arithmetic"
+
+#: builtins.c:1217
+msgid "evaluation.  Equivalent to \"let EXPRESSION\"."
+msgstr "evaluation.  Equivalent to “let EXPRESSION”."
+
+#: builtins.c:1223
+msgid ""
+"Returns a status of 0 or 1 depending on the evaluation of the conditional"
+msgstr ""
+"Returns a status of 0 or 1 depending on the evaluation of the conditional"
+
+#: builtins.c:1224
+msgid ""
+"expression EXPRESSION.  Expressions are composed of the same primaries used"
+msgstr ""
+"expression EXPRESSION.  Expressions are composed of the same primaries used"
+
+#: builtins.c:1225
+msgid ""
+"by the `test' builtin, and may be combined using the following operators"
+msgstr ""
+"by the ‘test’ builtin, and may be combined using the following operators"
+
+#: builtins.c:1227
+msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION"
+msgstr "\t( EXPRESSION )\tReturns the value of EXPRESSION"
+
+#: builtins.c:1228
+msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false"
+msgstr "\t! EXPRESSION\tTrue if EXPRESSION is false; else false"
+
+#: builtins.c:1229
+msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false"
+msgstr "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false"
+
+#: builtins.c:1230
+msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false"
+msgstr "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false"
+
+#: builtins.c:1232
+msgid ""
+"When the `==' and `!=' operators are used, the string to the right of the"
+msgstr ""
+"When the ‘==’ and ‘!=’ operators are used, the string to the right of the"
+
+#: builtins.c:1233
+msgid "operator is used as a pattern and pattern matching is performed.  The"
+msgstr "operator is used as a pattern and pattern matching is performed.  The"
+
+#: builtins.c:1234
+msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to"
+msgstr "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to"
+
+#: builtins.c:1235
+msgid "determine the expression's value."
+msgstr "determine the expression's value."
+
+#: builtins.c:1241
+msgid "BASH_VERSION    Version information for this Bash."
+msgstr "BASH_VERSION    Version information for this Bash."
+
+#: builtins.c:1242
+msgid "CDPATH          A colon separated list of directories to search"
+msgstr "CDPATH          A colon separated list of directories to search"
+
+#: builtins.c:1243
+msgid "\t\twhen the argument to `cd' is not found in the current"
+msgstr "\t\twhen the argument to ‘cd’ is not found in the current"
+
+#: builtins.c:1244
+msgid "\t\tdirectory."
+msgstr "\t\tdirectory."
+
+#: builtins.c:1245
+msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
+msgstr "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
+
+#: builtins.c:1246
+msgid "\t\tbe ignored by pathname expansion."
+msgstr "\t\tbe ignored by pathname expansion."
+
+#: builtins.c:1248
+msgid ""
+"HISTFILE        The name of the file where your command history is stored."
+msgstr ""
+"HISTFILE        The name of the file where your command history is stored."
+
+#: builtins.c:1249
+msgid "HISTFILESIZE    The maximum number of lines this file can contain."
+msgstr "HISTFILESIZE    The maximum number of lines this file can contain."
+
+#: builtins.c:1250
+msgid "HISTSIZE        The maximum number of history lines that a running"
+msgstr "HISTSIZE        The maximum number of history lines that a running"
+
+#: builtins.c:1251
+msgid "\t\tshell can access."
+msgstr "\t\tshell can access."
+
+#: builtins.c:1253
+msgid "HOME            The complete pathname to your login directory."
+msgstr "HOME            The complete pathname to your login directory."
+
+#: builtins.c:1254
+msgid "HOSTNAME\tThe name of the current host."
+msgstr "HOSTNAME\tThe name of the current host."
+
+#: builtins.c:1255
+msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
+msgstr "HOSTTYPE        The type of CPU this version of Bash is running under."
+
+#: builtins.c:1256
+msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+msgstr "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+
+#: builtins.c:1257
+msgid "\t\tcharacter as the sole input.  If set, then the value"
+msgstr "\t\tcharacter as the sole input.  If set, then the value"
+
+#: builtins.c:1258
+msgid "\t\tof it is the number of EOF characters that can be seen"
+msgstr "\t\tof it is the number of EOF characters that can be seen"
+
+#: builtins.c:1259
+msgid "\t\tin a row on an empty line before the shell will exit"
+msgstr "\t\tin a row on an empty line before the shell will exit"
+
+#: builtins.c:1260
+msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
+msgstr "\t\t(default 10).  When unset, EOF signifies the end of input."
+
+#: builtins.c:1261
+msgid "MACHTYPE\tA string describing the current system Bash is running on."
+msgstr "MACHTYPE\tA string describing the current system Bash is running on."
+
+#: builtins.c:1262
+msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
+msgstr "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
+
+#: builtins.c:1263
+msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
+msgstr "MAILPATH\tA colon-separated list of filenames which Bash checks"
+
+#: builtins.c:1264
+msgid "\t\tfor new mail."
+msgstr "\t\tfor new mail."
+
+#: builtins.c:1265
+msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
+msgstr "OSTYPE\t\tThe version of Unix this version of Bash is running on."
+
+#: builtins.c:1266
+msgid "PATH            A colon-separated list of directories to search when"
+msgstr "PATH            A colon-separated list of directories to search when"
+
+#: builtins.c:1267
+msgid "\t\tlooking for commands."
+msgstr "\t\tlooking for commands."
+
+#: builtins.c:1268
+msgid "PROMPT_COMMAND  A command to be executed before the printing of each"
+msgstr "PROMPT_COMMAND  A command to be executed before the printing of each"
+
+#: builtins.c:1269
+msgid "\t\tprimary prompt."
+msgstr "\t\tprimary prompt."
+
+#: builtins.c:1270
+msgid "PS1             The primary prompt string."
+msgstr "PS1             The primary prompt string."
+
+#: builtins.c:1271
+msgid "PS2             The secondary prompt string."
+msgstr "PS2             The secondary prompt string."
+
+#: builtins.c:1272
+msgid "PWD\t\tThe full pathname of the current directory."
+msgstr "PWD\t\tThe full pathname of the current directory."
+
+#: builtins.c:1273
+msgid "SHELLOPTS\tA colon-separated list of enabled shell options."
+msgstr "SHELLOPTS\tA colon-separated list of enabled shell options."
+
+#: builtins.c:1274
+msgid "TERM            The name of the current terminal type."
+msgstr "TERM            The name of the current terminal type."
+
+#: builtins.c:1275
+msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the"
+msgstr "TIMEFORMAT\tThe output format for timing statistics displayed by the"
+
+#: builtins.c:1276
+msgid "\t\t`time' reserved word."
+msgstr "\t\t‘time’ reserved word."
+
+#: builtins.c:1277
+msgid "auto_resume     Non-null means a command word appearing on a line by"
+msgstr "auto_resume     Non-null means a command word appearing on a line by"
+
+#: builtins.c:1278
+msgid "\t\titself is first looked for in the list of currently"
+msgstr "\t\titself is first looked for in the list of currently"
+
+#: builtins.c:1279
+msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
+msgstr "\t\tstopped jobs.  If found there, that job is foregrounded."
+
+#: builtins.c:1280
+msgid "\t\tA value of `exact' means that the command word must"
+msgstr "\t\tA value of ‘exact’ means that the command word must"
+
+#: builtins.c:1281
+msgid "\t\texactly match a command in the list of stopped jobs.  A"
+msgstr "\t\texactly match a command in the list of stopped jobs.  A"
+
+#: builtins.c:1282
+msgid "\t\tvalue of `substring' means that the command word must"
+msgstr "\t\tvalue of ‘substring’ means that the command word must"
+
+#: builtins.c:1283
+msgid "\t\tmatch a substring of the job.  Any other value means that"
+msgstr "\t\tmatch a substring of the job.  Any other value means that"
+
+#: builtins.c:1284
+msgid "\t\tthe command must be a prefix of a stopped job."
+msgstr "\t\tthe command must be a prefix of a stopped job."
+
+#: builtins.c:1287
+msgid "histchars       Characters controlling history expansion and quick"
+msgstr "histchars       Characters controlling history expansion and quick"
+
+#: builtins.c:1288
+msgid "\t\tsubstitution.  The first character is the history"
+msgstr "\t\tsubstitution.  The first character is the history"
+
+#: builtins.c:1289
+msgid "\t\tsubstitution character, usually `!'.  The second is"
+msgstr "\t\tsubstitution character, usually ‘!’.  The second is"
+
+#: builtins.c:1290
+msgid "\t\tthe `quick substitution' character, usually `^'.  The"
+msgstr "\t\tthe ‘quick substitution’ character, usually ‘^’.  The"
+
+#: builtins.c:1291
+msgid "\t\tthird is the `history comment' character, usually `#'."
+msgstr "\t\tthird is the ‘history comment’ character, usually ‘#’."
+
+#: builtins.c:1293
+msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which"
+msgstr "HISTIGNORE\tA colon-separated list of patterns used to decide which"
+
+#: builtins.c:1294
+msgid "\t\tcommands should be saved on the history list."
+msgstr "\t\tcommands should be saved on the history list."
+
+#: builtins.c:1306
+msgid "+N\tRotates the stack so that the Nth directory (counting"
+msgstr "+N\tRotates the stack so that the Nth directory (counting"
+
+#: builtins.c:1307
+msgid "\tfrom the left of the list shown by `dirs', starting with"
+msgstr "\tfrom the left of the list shown by ‘dirs’, starting with"
+
+#: builtins.c:1308 builtins.c:1312
+msgid "\tzero) is at the top."
+msgstr "\tzero) is at the top."
+
+#: builtins.c:1310
+msgid "-N\tRotates the stack so that the Nth directory (counting"
+msgstr "-N\tRotates the stack so that the Nth directory (counting"
+
+#: builtins.c:1311
+msgid "\tfrom the right of the list shown by `dirs', starting with"
+msgstr "\tfrom the right of the list shown by ‘dirs’, starting with"
+
+#: builtins.c:1314
+msgid "-n\tsuppress the normal change of directory when adding directories"
+msgstr "-n\tsuppress the normal change of directory when adding directories"
+
+#: builtins.c:1315
+msgid "\tto the stack, so only the stack is manipulated."
+msgstr "\tto the stack, so only the stack is manipulated."
+
+#: builtins.c:1317
+msgid "dir\tadds DIR to the directory stack at the top, making it the"
+msgstr "dir\tadds DIR to the directory stack at the top, making it the"
+
+#: builtins.c:1318
+msgid "\tnew current working directory."
+msgstr "\tnew current working directory."
+
+#: builtins.c:1332
+msgid "+N\tremoves the Nth entry counting from the left of the list"
+msgstr "+N\tremoves the Nth entry counting from the left of the list"
+
+#: builtins.c:1333
+msgid "\tshown by `dirs', starting with zero.  For example: `popd +0'"
+msgstr "\tshown by ‘dirs’, starting with zero.  For example: ‘popd +0’"
+
+#: builtins.c:1334
+msgid "\tremoves the first directory, `popd +1' the second."
+msgstr "\tremoves the first directory, ‘popd +1’ the second."
+
+#: builtins.c:1336
+msgid "-N\tremoves the Nth entry counting from the right of the list"
+msgstr "-N\tremoves the Nth entry counting from the right of the list"
+
+#: builtins.c:1337
+msgid "\tshown by `dirs', starting with zero.  For example: `popd -0'"
+msgstr "\tshown by ‘dirs’, starting with zero.  For example: ‘popd -0’"
+
+#: builtins.c:1338
+msgid "\tremoves the last directory, `popd -1' the next to last."
+msgstr "\tremoves the last directory, ‘popd -1’ the next to last."
+
+#: builtins.c:1340
+msgid "-n\tsuppress the normal change of directory when removing directories"
+msgstr "-n\tsuppress the normal change of directory when removing directories"
+
+#: builtins.c:1341
+msgid "\tfrom the stack, so only the stack is manipulated."
+msgstr "\tfrom the stack, so only the stack is manipulated."
+
+#: builtins.c:1363
+msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
+msgstr "+N\tdisplays the Nth entry counting from the left of the list shown by"
+
+#: builtins.c:1364 builtins.c:1367
+msgid "\tdirs when invoked without options, starting with zero."
+msgstr "\tdirs when invoked without options, starting with zero."
+
+#: builtins.c:1366
+msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
+msgstr ""
+"-N\tdisplays the Nth entry counting from the right of the list shown by"
+
+#: builtins.c:1374
+msgid "Toggle the values of variables controlling optional behavior."
+msgstr "Toggle the values of variables controlling optional behavior."
+
+#: builtins.c:1375
+msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
+msgstr "The -s flag means to enable (set) each OPTNAME; the -u flag"
+
+#: builtins.c:1376
+msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
+msgstr "unsets each OPTNAME.  The -q flag suppresses output; the exit"
+
+#: builtins.c:1377
+msgid "status indicates whether each OPTNAME is set or unset.  The -o"
+msgstr "status indicates whether each OPTNAME is set or unset.  The -o"
+
+#: builtins.c:1378
+msgid "option restricts the OPTNAMEs to those defined for use with"
+msgstr "option restricts the OPTNAMEs to those defined for use with"
+
+#: builtins.c:1379
+msgid "`set -o'.  With no options, or with the -p option, a list of all"
+msgstr "‘set -o’.  With no options, or with the -p option, a list of all"
+
+#: builtins.c:1380
+msgid "settable options is displayed, with an indication of whether or"
+msgstr "settable options is displayed, with an indication of whether or"
+
+#: builtins.c:1381
+msgid "not each is set."
+msgstr "not each is set."
+
+#: builtins.c:1387
+msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
+msgstr ""
+"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
+
+#: builtins.c:1388
+msgid "is a character string which contains three types of objects: plain"
+msgstr "is a character string which contains three types of objects: plain"
+
+#: builtins.c:1389
+msgid ""
+"characters, which are simply copied to standard output, character escape"
+msgstr ""
+"characters, which are simply copied to standard output, character escape"
+
+#: builtins.c:1390
+msgid "sequences which are converted and copied to the standard output, and"
+msgstr "sequences which are converted and copied to the standard output, and"
+
+#: builtins.c:1391
+msgid ""
+"format specifications, each of which causes printing of the next successive"
+msgstr ""
+"format specifications, each of which causes printing of the next successive"
+
+#: builtins.c:1392
+msgid "argument.  In addition to the standard printf(1) formats, %b means to"
+msgstr "argument.  In addition to the standard printf(1) formats, %b means to"
+
+#: builtins.c:1393
+msgid "expand backslash escape sequences in the corresponding argument, and %q"
+msgstr ""
+"expand backslash escape sequences in the corresponding argument, and %q"
+
+#: builtins.c:1394
+msgid "means to quote the argument in a way that can be reused as shell input."
+msgstr ""
+"means to quote the argument in a way that can be reused as shell input."
+
+#: builtins.c:1401
+msgid "For each NAME, specify how arguments are to be completed."
+msgstr "For each NAME, specify how arguments are to be completed."
+
+#: builtins.c:1402
+msgid "If the -p option is supplied, or if no options are supplied, existing"
+msgstr "If the -p option is supplied, or if no options are supplied, existing"
+
+#: builtins.c:1403
+msgid "completion specifications are printed in a way that allows them to be"
+msgstr "completion specifications are printed in a way that allows them to be"
+
+#: builtins.c:1404
+msgid "reused as input.  The -r option removes a completion specification for"
+msgstr "reused as input.  The -r option removes a completion specification for"
+
+#: builtins.c:1405
+msgid "each NAME, or, if no NAMEs are supplied, all completion specifications."
+msgstr ""
+"each NAME, or, if no NAMEs are supplied, all completion specifications."
+
+#: builtins.c:1413
+msgid "Display the possible completions depending on the options.  Intended"
+msgstr "Display the possible completions depending on the options.  Intended"
+
+#: builtins.c:1414
+msgid ""
+"to be used from within a shell function generating possible completions."
+msgstr ""
+"to be used from within a shell function generating possible completions."
+
+#: builtins.c:1415
+msgid "If the optional WORD argument is supplied, matches against WORD are"
+msgstr "If the optional WORD argument is supplied, matches against WORD are"
+
+#: builtins.c:1416
+msgid "generated."
+msgstr "generated."
diff --git a/po.orig/insert-header.sin b/po.orig/insert-header.sin
new file mode 100644 (file)
index 0000000..b26de01
--- /dev/null
@@ -0,0 +1,23 @@
+# Sed script that inserts the file called HEADER before the header entry.
+#
+# At each occurrence of a line starting with "msgid ", we execute the following
+# commands. At the first occurrence, insert the file. At the following
+# occurrences, do nothing. The distinction between the first and the following
+# occurrences is achieved by looking at the hold space.
+/^msgid /{
+x
+# Test if the hold space is empty.
+s/m/m/
+ta
+# Yes it was empty. First occurrence. Read the file.
+r HEADER
+# Output the file's contents by reading the next line. But don't lose the
+# current line while doing this.
+g
+N
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/po.orig/quot.sed b/po.orig/quot.sed
new file mode 100644 (file)
index 0000000..0122c46
--- /dev/null
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
diff --git a/po.orig/readline.po b/po.orig/readline.po
new file mode 100644 (file)
index 0000000..3519812
--- /dev/null
@@ -0,0 +1,133 @@
+#: lib/readline/bind.c:878
+#, c-format
+msgid "readline: %s: line %d: %s\n"
+msgstr ""
+
+#: lib/readline/bind.c:881
+#, c-format
+msgid "readline: %s\n"
+msgstr ""
+
+#: lib/readline/bind.c:994
+msgid "$else found without matching $if"
+msgstr ""
+
+#: lib/readline/bind.c:1024
+msgid "$endif without matching $if"
+msgstr ""
+
+#: lib/readline/bind.c:1101
+msgid "unknown parser directive"
+msgstr ""
+
+#: lib/readline/bind.c:1162
+msgid "no closing `\"' in key binding"
+msgstr ""
+
+#: lib/readline/bind.c:1977
+#, c-format
+msgid "# %s (not bound)\n"
+msgstr ""
+
+#: lib/readline/bind.c:1995
+#, c-format
+msgid "%s is not bound to any keys\n"
+msgstr ""
+
+#: lib/readline/bind.c:2001
+#, c-format
+msgid "%s can be found on "
+msgstr ""
+
+#: lib/readline/bind.c:2128
+#, c-format
+msgid "%s is set to `%s'\n"
+msgstr ""
+
+#: lib/readline/bind.c:2146
+#, c-format
+msgid "bell-style is set to `%s'\n"
+msgstr ""
+
+#: lib/readline/bind.c:2152
+#, c-format
+msgid "comment-begin is set to `%s'\n"
+msgstr ""
+
+#: lib/readline/bind.c:2158
+#, c-format
+msgid "completion-query-items is set to `%d'\n"
+msgstr ""
+
+#: lib/readline/bind.c:2164
+#, c-format
+msgid "editing-mode is set to `%s'\n"
+msgstr ""
+
+#: lib/readline/bind.c:2176
+#, c-format
+msgid "isearch-terminators is set to \"%s\"\n"
+msgstr ""
+
+#: lib/readline/bind.c:2188
+#, c-format
+msgid "keymap is set to `%s'\n"
+msgstr ""
+
+#: lib/readline/callback.c:105
+msgid "readline: readline_callback_read_char() called with no handler!\r\n"
+msgstr ""
+
+#: lib/readline/complete.c:1342
+#, c-format
+msgid "Display all %d possibilities? (y or n)"
+msgstr ""
+
+#: lib/readline/complete.c:1681
+#, c-format
+msgid ""
+"\r\n"
+"readline: bad value %d for what_to_do in rl_complete\n"
+msgstr ""
+
+#: lib/readline/display.c:1924
+#, c-format
+msgid "readline: debug: insert_some_chars: count (%d) != col (%d)\n"
+msgstr ""
+
+#: lib/readline/histexpand.c:377
+msgid "event not found"
+msgstr ""
+
+#: lib/readline/histexpand.c:381
+msgid "bad word specifier"
+msgstr ""
+
+#: lib/readline/histexpand.c:385
+msgid "substitution failed"
+msgstr ""
+
+#: lib/readline/histexpand.c:389
+msgid "unrecognized history modifier"
+msgstr ""
+
+#: lib/readline/histexpand.c:393
+msgid "no previous substitution"
+msgstr ""
+
+#: lib/readline/histexpand.c:397
+msgid "unknown expansion error"
+msgstr ""
+
+#: lib/readline/rltty.c:464
+#, c-format
+msgid "readline: warning: %s\n"
+msgstr ""
+
+#: lib/readline/rltty.c:475
+msgid "turning on OPOST for terminal\r"
+msgstr ""
+
+#: lib/readline/rltty.c:501
+msgid "turning off output flushing"
+msgstr ""
diff --git a/po.orig/remove-potcdate.sin b/po.orig/remove-potcdate.sin
new file mode 100644 (file)
index 0000000..2436c49
--- /dev/null
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/po.tar b/po.tar
new file mode 100644 (file)
index 0000000..d259db5
Binary files /dev/null and b/po.tar differ
index 3340d22cc36514e998661ee36e90caadcfe8e065..d195ab73d436ee13220372b87ed15f28001ccffc 100644 (file)
 #: builtins.c:722 builtins.c:745 builtins.c:835 builtins.c:919 builtins.c:921
 #: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952
 #: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973
-#: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028
-#: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062
-#: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309
-#: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331
-#: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354
-#: builtins.c:1362 builtins.c:1365
+#: builtins.c:976 builtins.c:1020 builtins.c:1025 builtins.c:1029
+#: builtins.c:1033 builtins.c:1035 builtins.c:1048 builtins.c:1063
+#: builtins.c:1226 builtins.c:1231 builtins.c:1304 builtins.c:1308
+#: builtins.c:1312 builtins.c:1315 builtins.c:1318 builtins.c:1330
+#: builtins.c:1334 builtins.c:1338 builtins.c:1341 builtins.c:1353
+#: builtins.c:1361 builtins.c:1364
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-bash@gnu.org\n"
-"POT-Creation-Date: 2003-12-22 15:34-0500\n"
+"POT-Creation-Date: 2004-09-09 17:59-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"
@@ -43,35 +43,30 @@ msgstr ""
 msgid "%s: cannot assign to non-numeric index"
 msgstr ""
 
-#: bashhist.c:321
+#: bashhist.c:322
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr ""
 
-#: bashline.c:2791
+#: bashline.c:2916
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:2840
+#: bashline.c:2965
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
 
-#: bashline.c:2869
+#: bashline.c:2994
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr ""
 
-#: bashline.c:2903
+#: bashline.c:3028
 #, c-format
 msgid "%s: missing colon separator"
 msgstr ""
 
-#: builtins/alias.def:123
-#, c-format
-msgid "`%s': invalid alias name"
-msgstr ""
-
 #: builtins/bind.def:194
 #, c-format
 msgid "`%s': invalid keymap name"
@@ -130,19 +125,14 @@ msgstr ""
 msgid "current one; the top frame is frame 0."
 msgstr ""
 
-#: builtins/cd.def:188
+#: builtins/cd.def:190
 msgid "HOME not set"
 msgstr ""
 
-#: builtins/cd.def:200
+#: builtins/cd.def:202
 msgid "OLDPWD not set"
 msgstr ""
 
-#: builtins/cd.def:357
-#, c-format
-msgid "write error: %s"
-msgstr ""
-
 #: builtins/common.c:133 test.c:921
 msgid "too many arguments"
 msgstr ""
@@ -172,7 +162,7 @@ msgstr ""
 msgid "%s: invalid option name"
 msgstr ""
 
-#: builtins/common.c:194 general.c:229 general.c:234
+#: builtins/common.c:194 general.c:231 general.c:236
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr ""
@@ -239,12 +229,17 @@ msgstr ""
 msgid "%s: not a shell builtin"
 msgstr ""
 
-#: builtins/common.c:486
+#: builtins/common.c:276
+#, c-format
+msgid "write error: %s"
+msgstr ""
+
+#: builtins/common.c:484
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:553 builtins/common.c:555
+#: builtins/common.c:548 builtins/common.c:550
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr ""
@@ -275,7 +270,7 @@ msgstr ""
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:307 execute_cmd.c:3949
+#: builtins/declare.def:307 execute_cmd.c:3969
 #, c-format
 msgid "%s: readonly function"
 msgstr ""
@@ -309,17 +304,17 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr ""
 
-#: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395
+#: builtins/evalfile.c:129 execute_cmd.c:3841 shell.c:1396
 #, c-format
 msgid "%s: is a directory"
 msgstr ""
 
-#: builtins/evalfile.c:133
+#: builtins/evalfile.c:134
 #, c-format
 msgid "%s: not a regular file"
 msgstr ""
 
-#: builtins/evalfile.c:141
+#: builtins/evalfile.c:142
 #, c-format
 msgid "%s: file is too large"
 msgstr ""
@@ -337,20 +332,20 @@ msgstr ""
 msgid "There are stopped jobs.\n"
 msgstr ""
 
-#: builtins/fc.def:252
+#: builtins/fc.def:254
 msgid "no command found"
 msgstr ""
 
-#: builtins/fc.def:317
+#: builtins/fc.def:319
 msgid "history specification"
 msgstr ""
 
-#: builtins/fc.def:338
+#: builtins/fc.def:340
 #, c-format
 msgid "%s: cannot open temp file: %s"
 msgstr ""
 
-#: builtins/fg_bg.def:133
+#: builtins/fg_bg.def:145
 #, c-format
 msgid "job %d started without job control"
 msgstr ""
@@ -430,7 +425,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr ""
 
-#: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511
+#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512
 msgid "expression expected"
 msgstr ""
 
@@ -439,12 +434,12 @@ msgstr ""
 msgid "`%s': missing format character"
 msgstr ""
 
-#: builtins/printf.def:408
+#: builtins/printf.def:423
 #, c-format
 msgid "`%c': invalid format character"
 msgstr ""
 
-#: builtins/printf.def:601
+#: builtins/printf.def:629
 msgid "missing hex digit for \\x"
 msgstr ""
 
@@ -456,43 +451,43 @@ msgstr ""
 msgid "<no current directory>"
 msgstr ""
 
-#: builtins/pushd.def:652 builtins.c:1351
+#: builtins/pushd.def:652 builtins.c:1350
 msgid "Display the list of currently remembered directories.  Directories"
 msgstr ""
 
-#: builtins/pushd.def:653 builtins.c:1352
+#: builtins/pushd.def:653 builtins.c:1351
 msgid "find their way onto the list with the `pushd' command; you can get"
 msgstr ""
 
-#: builtins/pushd.def:654 builtins.c:1353
+#: builtins/pushd.def:654 builtins.c:1352
 msgid "back up through the list with the `popd' command."
 msgstr ""
 
-#: builtins/pushd.def:656 builtins.c:1355
+#: builtins/pushd.def:656 builtins.c:1354
 msgid "The -l flag specifies that `dirs' should not print shorthand versions"
 msgstr ""
 
-#: builtins/pushd.def:657 builtins.c:1356
+#: builtins/pushd.def:657 builtins.c:1355
 msgid "of directories which are relative to your home directory.  This means"
 msgstr ""
 
-#: builtins/pushd.def:658 builtins.c:1357
+#: builtins/pushd.def:658 builtins.c:1356
 msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
 msgstr ""
 
-#: builtins/pushd.def:659 builtins.c:1358
+#: builtins/pushd.def:659 builtins.c:1357
 msgid "causes `dirs' to print the directory stack with one entry per line,"
 msgstr ""
 
-#: builtins/pushd.def:660 builtins.c:1359
+#: builtins/pushd.def:660 builtins.c:1358
 msgid "prepending the directory name with its position in the stack.  The -p"
 msgstr ""
 
-#: builtins/pushd.def:661 builtins.c:1360
+#: builtins/pushd.def:661 builtins.c:1359
 msgid "flag does the same thing, but the stack position is not prepended."
 msgstr ""
 
-#: builtins/pushd.def:662 builtins.c:1361
+#: builtins/pushd.def:662 builtins.c:1360
 msgid "The -c flag clears the directory stack by deleting all of the elements."
 msgstr ""
 
@@ -509,15 +504,15 @@ msgid ""
 "-N   displays the Nth entry counting from the right of the list shown by"
 msgstr ""
 
-#: builtins/pushd.def:673 builtins.c:1302
+#: builtins/pushd.def:673 builtins.c:1301
 msgid "Adds a directory to the top of the directory stack, or rotates"
 msgstr ""
 
-#: builtins/pushd.def:674 builtins.c:1303
+#: builtins/pushd.def:674 builtins.c:1302
 msgid "the stack, making the new top of the stack the current working"
 msgstr ""
 
-#: builtins/pushd.def:675 builtins.c:1304
+#: builtins/pushd.def:675 builtins.c:1303
 msgid "directory.  With no arguments, exchanges the top two directories."
 msgstr ""
 
@@ -557,20 +552,20 @@ msgstr ""
 msgid "     new current working directory."
 msgstr ""
 
-#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320
-#: builtins.c:1343
+#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1319
+#: builtins.c:1342
 msgid "You can see the directory stack with the `dirs' command."
 msgstr ""
 
-#: builtins/pushd.def:696 builtins.c:1328
+#: builtins/pushd.def:696 builtins.c:1327
 msgid "Removes entries from the directory stack.  With no arguments,"
 msgstr ""
 
-#: builtins/pushd.def:697 builtins.c:1329
+#: builtins/pushd.def:697 builtins.c:1328
 msgid "removes the top directory from the stack, and cd's to the new"
 msgstr ""
 
-#: builtins/pushd.def:698 builtins.c:1330
+#: builtins/pushd.def:698 builtins.c:1329
 msgid "top directory."
 msgstr ""
 
@@ -684,32 +679,32 @@ msgstr ""
 msgid "cannot suspend a login shell"
 msgstr ""
 
-#: builtins/type.def:231
+#: builtins/type.def:232
 #, c-format
 msgid "%s is aliased to `%s'\n"
 msgstr ""
 
-#: builtins/type.def:252
+#: builtins/type.def:253
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr ""
 
-#: builtins/type.def:272
+#: builtins/type.def:273
 #, c-format
 msgid "%s is a function\n"
 msgstr ""
 
-#: builtins/type.def:297
+#: builtins/type.def:298
 #, c-format
 msgid "%s is a shell builtin\n"
 msgstr ""
 
-#: builtins/type.def:318
+#: builtins/type.def:319
 #, c-format
 msgid "%s is %s\n"
 msgstr ""
 
-#: builtins/type.def:338
+#: builtins/type.def:339
 #, c-format
 msgid "%s is hashed (%s)\n"
 msgstr ""
@@ -743,7 +738,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode operator"
 msgstr ""
 
-#: builtins/umask.def:279
+#: builtins/umask.def:281
 #, c-format
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
@@ -787,98 +782,98 @@ msgstr ""
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr ""
 
-#: execute_cmd.c:466
+#: execute_cmd.c:467
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1036
+#: execute_cmd.c:1037
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:3521
+#: execute_cmd.c:3541
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:3609
+#: execute_cmd.c:3629
 #, c-format
 msgid "%s: command not found"
 msgstr ""
 
-#: execute_cmd.c:3839
+#: execute_cmd.c:3859
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr ""
 
-#: execute_cmd.c:3876
+#: execute_cmd.c:3896
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr ""
 
-#: execute_cmd.c:3988
+#: execute_cmd.c:4008
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
 
-#: expr.c:239
+#: expr.c:240
 msgid "expression recursion level exceeded"
 msgstr ""
 
-#: expr.c:263
+#: expr.c:264
 msgid "recursion stack underflow"
 msgstr ""
 
-#: expr.c:374
+#: expr.c:375
 msgid "syntax error in expression"
 msgstr ""
 
-#: expr.c:414
+#: expr.c:415
 msgid "attempted assignment to non-variable"
 msgstr ""
 
-#: expr.c:435 expr.c:440 expr.c:750
+#: expr.c:436 expr.c:441 expr.c:751
 msgid "division by 0"
 msgstr ""
 
-#: expr.c:466
+#: expr.c:467
 msgid "bug: bad expassign token"
 msgstr ""
 
-#: expr.c:508
+#: expr.c:509
 msgid "`:' expected for conditional expression"
 msgstr ""
 
-#: expr.c:775
+#: expr.c:776
 msgid "exponent less than 0"
 msgstr ""
 
-#: expr.c:819
+#: expr.c:821
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:847
+#: expr.c:849
 msgid "missing `)'"
 msgstr ""
 
-#: expr.c:871
+#: expr.c:892
 msgid "syntax error: operand expected"
 msgstr ""
 
-#: expr.c:1146
+#: expr.c:1178
 msgid "invalid number"
 msgstr ""
 
-#: expr.c:1150
+#: expr.c:1182
 msgid "invalid arithmetic base"
 msgstr ""
 
-#: expr.c:1170
+#: expr.c:1202
 msgid "value too great for base"
 msgstr ""
 
-#: general.c:60
+#: general.c:62
 msgid "getcwd: cannot access parent directories"
 msgstr ""
 
@@ -892,42 +887,42 @@ msgstr ""
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 
-#: jobs.c:693
+#: jobs.c:694
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1001
+#: jobs.c:1002
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 
-#: jobs.c:1632 nojobs.c:648
+#: jobs.c:1633 nojobs.c:648
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:1815
+#: jobs.c:1821
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2062
+#: jobs.c:2068
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2284
+#: jobs.c:2290
 #, c-format
 msgid "%s: job has terminated"
 msgstr ""
 
-#: jobs.c:2293
+#: jobs.c:2299
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3037
+#: jobs.c:3043
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1063,12 +1058,12 @@ msgstr ""
 msgid "syntax error: `((%s))'"
 msgstr ""
 
-#: make_cmd.c:560
+#: make_cmd.c:561
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr ""
 
-#: make_cmd.c:730
+#: make_cmd.c:731
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
@@ -1142,34 +1137,34 @@ msgstr ""
 msgid "unexpected token %d in conditional command"
 msgstr ""
 
-#: parse.y:4400
+#: parse.y:4409
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr ""
 
-#: parse.y:4418
+#: parse.y:4427
 #, c-format
 msgid "syntax error near `%s'"
 msgstr ""
 
-#: parse.y:4428
+#: parse.y:4437
 msgid "syntax error: unexpected end of file"
 msgstr ""
 
-#: parse.y:4428
+#: parse.y:4437
 msgid "syntax error"
 msgstr ""
 
-#: parse.y:4490
+#: parse.y:4499
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr ""
 
-#: parse.y:4649
+#: parse.y:4658
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:988
+#: pcomplete.c:998
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1179,12 +1174,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:260
+#: print_cmd.c:261
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:1172
+#: print_cmd.c:1211
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1234,124 +1229,124 @@ msgstr ""
 msgid "%c%c: invalid option"
 msgstr ""
 
-#: shell.c:1590
+#: shell.c:1591
 msgid "I have no name!"
 msgstr ""
 
-#: shell.c:1725
+#: shell.c:1726
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 msgstr ""
 
-#: shell.c:1727
+#: shell.c:1728
 msgid "GNU long options:\n"
 msgstr ""
 
-#: shell.c:1731
+#: shell.c:1732
 msgid "Shell options:\n"
 msgstr ""
 
-#: shell.c:1732
+#: shell.c:1733
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr ""
 
-#: shell.c:1747
+#: shell.c:1748
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr ""
 
-#: shell.c:1753
+#: shell.c:1754
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 
-#: shell.c:1754
+#: shell.c:1755
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 
-#: shell.c:1755
+#: shell.c:1756
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 
-#: sig.c:485
+#: sig.c:490
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr ""
 
-#: subst.c:1011
+#: subst.c:1046
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr ""
 
-#: subst.c:2020
+#: subst.c:2053
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr ""
 
-#: subst.c:3516 subst.c:3532
+#: subst.c:3880 subst.c:3896
 msgid "cannot make pipe for process substitution"
 msgstr ""
 
-#: subst.c:3563
+#: subst.c:3927
 msgid "cannot make child for process substitution"
 msgstr ""
 
-#: subst.c:3608
+#: subst.c:3972
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr ""
 
-#: subst.c:3610
+#: subst.c:3974
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr ""
 
-#: subst.c:3618
+#: subst.c:3982
 #, c-format
 msgid "cannout reset nodelay mode for fd %d"
 msgstr ""
 
-#: subst.c:3628
+#: subst.c:3992
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:3803
+#: subst.c:4167
 msgid "cannot make pipe for command substitution"
 msgstr ""
 
-#: subst.c:3832
+#: subst.c:4196
 msgid "cannot make child for command substitution"
 msgstr ""
 
-#: subst.c:3849
+#: subst.c:4213
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:4284
+#: subst.c:4671
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr ""
 
-#: subst.c:4529
+#: subst.c:4937
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr ""
 
-#: subst.c:5209
+#: subst.c:5667
 #, c-format
 msgid "%s: bad substitution"
 msgstr ""
 
-#: subst.c:5283
+#: subst.c:5741
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:6652
+#: subst.c:7110
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1408,43 +1403,43 @@ msgstr ""
 msgid "trap_handler: bad signal %d"
 msgstr ""
 
-#: variables.c:310
+#: variables.c:314
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr ""
 
-#: variables.c:670
+#: variables.c:674
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1610
+#: variables.c:1617
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:2709
+#: variables.c:2724
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:2923 variables.c:2932
+#: variables.c:2938 variables.c:2947
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:2938
+#: variables.c:2953
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3363
+#: variables.c:3378
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3376
+#: variables.c:3391
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3442
+#: variables.c:3457
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
@@ -3271,470 +3266,471 @@ msgid "The command ARG is to be read and executed when the shell receives"
 msgstr ""
 
 #: builtins.c:1000
-msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
+msgid "signal(s) SIGNAL_SPEC.  If ARG is absent (and a single SIGNAL_SPEC"
 msgstr ""
 
 #: builtins.c:1001
-msgid "reset to their original values.  If ARG is the null string each"
+msgid "is supplied) or `-', each specified signal is reset to its original"
 msgstr ""
 
 #: builtins.c:1002
-msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
+msgid "value.  If ARG is the null string each SIGNAL_SPEC is ignored by the"
 msgstr ""
 
 #: builtins.c:1003
-msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
+msgid "shell and by the commands it invokes.  If a SIGNAL_SPEC is EXIT (0)"
 msgstr ""
 
 #: builtins.c:1004
-msgid "the shell.  If a SIGNAL_SPEC is DEBUG, ARG is executed after every"
+msgid "the command ARG is executed on exit from the shell.  If a SIGNAL_SPEC"
 msgstr ""
 
 #: builtins.c:1005
-msgid "command.  If ARG is `-p' then the trap commands associated with"
+msgid ""
+"is DEBUG, ARG is executed after every simple command.  If the`-p' option"
 msgstr ""
 
 #: builtins.c:1006
-msgid "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
+msgid "is supplied then the trap commands associated with each SIGNAL_SPEC are"
 msgstr ""
 
 #: builtins.c:1007
-msgid "only `-p' is given, trap prints the list of commands associated with"
+msgid "displayed.  If no arguments are supplied or if only `-p' is given, trap"
 msgstr ""
 
 #: builtins.c:1008
 msgid ""
-"each signal number.  Each SIGNAL_SPEC is either a signal name in <signal.h>"
+"prints the list of commands associated with each signal.  Each SIGNAL_SPEC"
 msgstr ""
 
 #: builtins.c:1009
-msgid "or a signal number.  `trap -l' prints a list of signal names and their"
+msgid "is either a signal name in <signal.h> or a signal number.  Signal names"
 msgstr ""
 
 #: builtins.c:1010
-msgid "corresponding numbers.  Note that a signal can be sent to the shell"
+msgid "are case insensitive and the SIG prefix is optional.  `trap -l' prints"
 msgstr ""
 
 #: builtins.c:1011
-msgid "with \"kill -signal $$\"."
+msgid "a list of signal names and their corresponding numbers.  Note that a"
 msgstr ""
 
-#: builtins.c:1017
-msgid "For each NAME, indicate how it would be interpreted if used as a"
+#: builtins.c:1012
+msgid "signal can be sent to the shell with \"kill -signal $$\"."
 msgstr ""
 
 #: builtins.c:1018
+msgid "For each NAME, indicate how it would be interpreted if used as a"
+msgstr ""
+
+#: builtins.c:1019
 msgid "command name."
 msgstr ""
 
-#: builtins.c:1020
+#: builtins.c:1021
 msgid "If the -t option is used, `type' outputs a single word which is one of"
 msgstr ""
 
-#: builtins.c:1021
+#: builtins.c:1022
 msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
 msgstr ""
 
-#: builtins.c:1022
+#: builtins.c:1023
 msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
 msgstr ""
 
-#: builtins.c:1023
+#: builtins.c:1024
 msgid "or unfound, respectively."
 msgstr ""
 
-#: builtins.c:1025
+#: builtins.c:1026
 msgid "If the -p flag is used, `type' either returns the name of the disk"
 msgstr ""
 
-#: builtins.c:1026
+#: builtins.c:1027
 msgid "file that would be executed, or nothing if `type -t NAME' would not"
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1028
 msgid "return `file'."
 msgstr ""
 
-#: builtins.c:1029
+#: builtins.c:1030
 msgid "If the -a flag is used, `type' displays all of the places that contain"
 msgstr ""
 
-#: builtins.c:1030
+#: builtins.c:1031
 msgid "an executable named `file'.  This includes aliases, builtins, and"
 msgstr ""
 
-#: builtins.c:1031
+#: builtins.c:1032
 msgid "functions, if and only if the -p flag is not also used."
 msgstr ""
 
-#: builtins.c:1033
+#: builtins.c:1034
 msgid "The -f flag suppresses shell function lookup."
 msgstr ""
 
-#: builtins.c:1035
+#: builtins.c:1036
 msgid "The -P flag forces a PATH search for each NAME, even if it is an alias,"
 msgstr ""
 
-#: builtins.c:1036
+#: builtins.c:1037
 msgid "builtin, or function, and returns the name of the disk file that would"
 msgstr ""
 
-#: builtins.c:1037
+#: builtins.c:1038
 msgid "be executed."
 msgstr ""
 
-#: builtins.c:1044
+#: builtins.c:1045
 msgid "Ulimit provides control over the resources available to processes"
 msgstr ""
 
-#: builtins.c:1045
+#: builtins.c:1046
 msgid "started by the shell, on systems that allow such control.  If an"
 msgstr ""
 
-#: builtins.c:1046
+#: builtins.c:1047
 msgid "option is given, it is interpreted as follows:"
 msgstr ""
 
-#: builtins.c:1048
+#: builtins.c:1049
 msgid "    -S\tuse the `soft' resource limit"
 msgstr ""
 
-#: builtins.c:1049
+#: builtins.c:1050
 msgid "    -H\tuse the `hard' resource limit"
 msgstr ""
 
-#: builtins.c:1050
+#: builtins.c:1051
 msgid "    -a\tall current limits are reported"
 msgstr ""
 
-#: builtins.c:1051
+#: builtins.c:1052
 msgid "    -c\tthe maximum size of core files created"
 msgstr ""
 
-#: builtins.c:1052
+#: builtins.c:1053
 msgid "    -d\tthe maximum size of a process's data segment"
 msgstr ""
 
-#: builtins.c:1053
+#: builtins.c:1054
 msgid "    -f\tthe maximum size of files created by the shell"
 msgstr ""
 
-#: builtins.c:1054
+#: builtins.c:1055
 msgid "    -l\tthe maximum size a process may lock into memory"
 msgstr ""
 
-#: builtins.c:1055
+#: builtins.c:1056
 msgid "    -m\tthe maximum resident set size"
 msgstr ""
 
-#: builtins.c:1056
+#: builtins.c:1057
 msgid "    -n\tthe maximum number of open file descriptors"
 msgstr ""
 
-#: builtins.c:1057
+#: builtins.c:1058
 msgid "    -p\tthe pipe buffer size"
 msgstr ""
 
-#: builtins.c:1058
+#: builtins.c:1059
 msgid "    -s\tthe maximum stack size"
 msgstr ""
 
-#: builtins.c:1059
+#: builtins.c:1060
 msgid "    -t\tthe maximum amount of cpu time in seconds"
 msgstr ""
 
-#: builtins.c:1060
+#: builtins.c:1061
 msgid "    -u\tthe maximum number of user processes"
 msgstr ""
 
-#: builtins.c:1061
+#: builtins.c:1062
 msgid "    -v\tthe size of virtual memory"
 msgstr ""
 
-#: builtins.c:1063
+#: builtins.c:1064
 msgid "If LIMIT is given, it is the new value of the specified resource;"
 msgstr ""
 
-#: builtins.c:1064
+#: builtins.c:1065
 msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for"
 msgstr ""
 
-#: builtins.c:1065
+#: builtins.c:1066
 msgid ""
 "the current soft limit, the current hard limit, and no limit, respectively."
 msgstr ""
 
-#: builtins.c:1066
+#: builtins.c:1067
 msgid "Otherwise, the current value of the specified resource is printed."
 msgstr ""
 
-#: builtins.c:1067
+#: builtins.c:1068
 msgid "If no option is given, then -f is assumed.  Values are in 1024-byte"
 msgstr ""
 
-#: builtins.c:1068
+#: builtins.c:1069
 msgid "increments, except for -t, which is in seconds, -p, which is in"
 msgstr ""
 
-#: builtins.c:1069
+#: builtins.c:1070
 msgid "increments of 512 bytes, and -u, which is an unscaled number of"
 msgstr ""
 
-#: builtins.c:1070
+#: builtins.c:1071
 msgid "processes."
 msgstr ""
 
-#: builtins.c:1077
+#: builtins.c:1078
 msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
 msgstr ""
 
-#: builtins.c:1078
+#: builtins.c:1079
 msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
 msgstr ""
 
-#: builtins.c:1079
+#: builtins.c:1080
 msgid "option makes the output symbolic; otherwise an octal number is output."
 msgstr ""
 
-#: builtins.c:1080
+#: builtins.c:1081
 msgid "If `-p' is supplied, and MODE is omitted, the output is in a form"
 msgstr ""
 
-#: builtins.c:1081
+#: builtins.c:1082
 msgid "that may be used as input.  If MODE begins with a digit, it is"
 msgstr ""
 
-#: builtins.c:1082
+#: builtins.c:1083
 msgid "interpreted as an octal number, otherwise it is a symbolic mode string"
 msgstr ""
 
-#: builtins.c:1083
+#: builtins.c:1084
 msgid "like that accepted by chmod(1)."
 msgstr ""
 
-#: builtins.c:1090 builtins.c:1102
+#: builtins.c:1091 builtins.c:1103
 msgid "Wait for the specified process and report its termination status.  If"
 msgstr ""
 
-#: builtins.c:1091 builtins.c:1103
+#: builtins.c:1092 builtins.c:1104
 msgid "N is not given, all currently active child processes are waited for,"
 msgstr ""
 
-#: builtins.c:1092
+#: builtins.c:1093
 msgid "and the return code is zero.  N may be a process ID or a job"
 msgstr ""
 
-#: builtins.c:1093
+#: builtins.c:1094
 msgid "specification; if a job spec is given, all processes in the job's"
 msgstr ""
 
-#: builtins.c:1094
+#: builtins.c:1095
 msgid "pipeline are waited for."
 msgstr ""
 
-#: builtins.c:1104
+#: builtins.c:1105
 msgid "and the return code is zero.  N is a process ID; if it is not given,"
 msgstr ""
 
-#: builtins.c:1105
+#: builtins.c:1106
 msgid "all child processes of the shell are waited for."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1113
 msgid "The `for' loop executes a sequence of commands for each member in a"
 msgstr ""
 
-#: builtins.c:1113
+#: builtins.c:1114
 msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
 msgstr ""
 
-#: builtins.c:1114
+#: builtins.c:1115
 msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
 msgstr ""
 
-#: builtins.c:1115
+#: builtins.c:1116
 msgid "the COMMANDS are executed."
 msgstr ""
 
-#: builtins.c:1121
+#: builtins.c:1122
 msgid "Equivalent to"
 msgstr ""
 
-#: builtins.c:1122
+#: builtins.c:1123
 msgid "\t(( EXP1 ))"
 msgstr ""
 
-#: builtins.c:1123
+#: builtins.c:1124
 msgid "\twhile (( EXP2 )); do"
 msgstr ""
 
-#: builtins.c:1124
+#: builtins.c:1125
 msgid "\t\tCOMMANDS"
 msgstr ""
 
-#: builtins.c:1125
+#: builtins.c:1126
 msgid "\t\t(( EXP3 ))"
 msgstr ""
 
-#: builtins.c:1126
+#: builtins.c:1127
 msgid "\tdone"
 msgstr ""
 
-#: builtins.c:1127
+#: builtins.c:1128
 msgid "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
 msgstr ""
 
-#: builtins.c:1128
+#: builtins.c:1129
 msgid "omitted, it behaves as if it evaluates to 1."
 msgstr ""
 
-#: builtins.c:1134
+#: builtins.c:1135
 msgid "The WORDS are expanded, generating a list of words.  The"
 msgstr ""
 
-#: builtins.c:1135
+#: builtins.c:1136
 msgid "set of expanded words is printed on the standard error, each"
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1137
 msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
 msgstr ""
 
-#: builtins.c:1137
+#: builtins.c:1138
 msgid "is assumed.  The PS3 prompt is then displayed and a line read"
 msgstr ""
 
-#: builtins.c:1138
+#: builtins.c:1139
 msgid "from the standard input.  If the line consists of the number"
 msgstr ""
 
-#: builtins.c:1139
+#: builtins.c:1140
 msgid "corresponding to one of the displayed words, then NAME is set"
 msgstr ""
 
-#: builtins.c:1140
+#: builtins.c:1141
 msgid "to that word.  If the line is empty, WORDS and the prompt are"
 msgstr ""
 
-#: builtins.c:1141
+#: builtins.c:1142
 msgid "redisplayed.  If EOF is read, the command completes.  Any other"
 msgstr ""
 
-#: builtins.c:1142
+#: builtins.c:1143
 msgid "value read causes NAME to be set to null.  The line read is saved"
 msgstr ""
 
-#: builtins.c:1143
+#: builtins.c:1144
 msgid "in the variable REPLY.  COMMANDS are executed after each selection"
 msgstr ""
 
-#: builtins.c:1144
+#: builtins.c:1145
 msgid "until a break command is executed."
 msgstr ""
 
-#: builtins.c:1150
+#: builtins.c:1151
 msgid "Execute PIPELINE and print a summary of the real time, user CPU time,"
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1152
 msgid "and system CPU time spent executing PIPELINE when it terminates."
 msgstr ""
 
-#: builtins.c:1152
+#: builtins.c:1153
 msgid "The return status is the return status of PIPELINE.  The `-p' option"
 msgstr ""
 
-#: builtins.c:1153
+#: builtins.c:1154
 msgid "prints the timing summary in a slightly different format.  This uses"
 msgstr ""
 
-#: builtins.c:1154
+#: builtins.c:1155
 msgid "the value of the TIMEFORMAT variable as the output format."
 msgstr ""
 
-#: builtins.c:1160
+#: builtins.c:1161
 msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
 msgstr ""
 
-#: builtins.c:1161
+#: builtins.c:1162
 msgid "`|' is used to separate multiple patterns."
 msgstr ""
 
-#: builtins.c:1167
+#: builtins.c:1168
 msgid ""
 "The if COMMANDS are executed.  If the exit status is zero, then the then"
 msgstr ""
 
-#: builtins.c:1168
+#: builtins.c:1169
 msgid ""
 "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
 msgstr ""
 
-#: builtins.c:1169
+#: builtins.c:1170
 msgid ""
 "in turn, and if the exit status is zero, the corresponding then COMMANDS"
 msgstr ""
 
-#: builtins.c:1170
+#: builtins.c:1171
 msgid ""
 "are executed and the if command completes.  Otherwise, the else COMMANDS"
 msgstr ""
 
-#: builtins.c:1171
+#: builtins.c:1172
 msgid ""
 "are executed, if present.  The exit status is the exit status of the last"
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1173
 msgid "command executed, or zero if no condition tested true."
 msgstr ""
 
-#: builtins.c:1178 builtins.c:1185
+#: builtins.c:1179 builtins.c:1186
 msgid "Expand and execute COMMANDS as long as the final command in the"
 msgstr ""
 
-#: builtins.c:1179
+#: builtins.c:1180
 msgid "`while' COMMANDS has an exit status of zero."
 msgstr ""
 
-#: builtins.c:1186
+#: builtins.c:1187
 msgid "`until' COMMANDS has an exit status which is not zero."
 msgstr ""
 
-#: builtins.c:1192
+#: builtins.c:1193
 msgid "Create a simple command invoked by NAME which runs COMMANDS."
 msgstr ""
 
-#: builtins.c:1193
+#: builtins.c:1194
 msgid "Arguments on the command line along with NAME are passed to the"
 msgstr ""
 
-#: builtins.c:1194
+#: builtins.c:1195
 msgid "function as $0 .. $n."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1201
 msgid "Run a set of commands in a group.  This is one way to redirect an"
 msgstr ""
 
-#: builtins.c:1201
+#: builtins.c:1202
 msgid "entire set of commands."
 msgstr ""
 
-#: builtins.c:1207
-msgid "This is similar to the `fg' command.  Resume a stopped or background"
-msgstr ""
-
 #: builtins.c:1208
-msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
+msgid "This is similar to the `fg' command.  Resume a stopped or background"
 msgstr ""
 
 #: builtins.c:1209
-msgid "WORD, then the job whose name begins with WORD is used.  Following the"
+msgid "job specified by %JOBSPEC.  Following the job specification with a `&'"
 msgstr ""
 
 #: builtins.c:1210
-msgid "job specification with a `&' places the job in the background."
+msgid "places the job in the background."
 msgstr ""
 
 #: builtins.c:1216
@@ -3798,377 +3794,373 @@ msgid "BASH_VERSION    Version information for this Bash."
 msgstr ""
 
 #: builtins.c:1242
-msgid "CDPATH          A colon separated list of directories to search"
+msgid "CDPATH          A colon-separated list of directories to search"
 msgstr ""
 
 #: builtins.c:1243
-msgid "\t\twhen the argument to `cd' is not found in the current"
+msgid "\t\tfor directries given as arguments to `cd'."
 msgstr ""
 
 #: builtins.c:1244
-msgid "\t\tdirectory."
-msgstr ""
-
-#: builtins.c:1245
 msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
 msgstr ""
 
-#: builtins.c:1246
+#: builtins.c:1245
 msgid "\t\tbe ignored by pathname expansion."
 msgstr ""
 
-#: builtins.c:1248
+#: builtins.c:1247
 msgid ""
 "HISTFILE        The name of the file where your command history is stored."
 msgstr ""
 
-#: builtins.c:1249
+#: builtins.c:1248
 msgid "HISTFILESIZE    The maximum number of lines this file can contain."
 msgstr ""
 
-#: builtins.c:1250
+#: builtins.c:1249
 msgid "HISTSIZE        The maximum number of history lines that a running"
 msgstr ""
 
-#: builtins.c:1251
+#: builtins.c:1250
 msgid "\t\tshell can access."
 msgstr ""
 
-#: builtins.c:1253
+#: builtins.c:1252
 msgid "HOME            The complete pathname to your login directory."
 msgstr ""
 
-#: builtins.c:1254
+#: builtins.c:1253
 msgid "HOSTNAME\tThe name of the current host."
 msgstr ""
 
-#: builtins.c:1255
+#: builtins.c:1254
 msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
 msgstr ""
 
-#: builtins.c:1256
+#: builtins.c:1255
 msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
 msgstr ""
 
-#: builtins.c:1257
+#: builtins.c:1256
 msgid "\t\tcharacter as the sole input.  If set, then the value"
 msgstr ""
 
-#: builtins.c:1258
+#: builtins.c:1257
 msgid "\t\tof it is the number of EOF characters that can be seen"
 msgstr ""
 
-#: builtins.c:1259
+#: builtins.c:1258
 msgid "\t\tin a row on an empty line before the shell will exit"
 msgstr ""
 
-#: builtins.c:1260
+#: builtins.c:1259
 msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
 msgstr ""
 
-#: builtins.c:1261
+#: builtins.c:1260
 msgid "MACHTYPE\tA string describing the current system Bash is running on."
 msgstr ""
 
-#: builtins.c:1262
+#: builtins.c:1261
 msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
 msgstr ""
 
-#: builtins.c:1263
+#: builtins.c:1262
 msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
 msgstr ""
 
-#: builtins.c:1264
+#: builtins.c:1263
 msgid "\t\tfor new mail."
 msgstr ""
 
-#: builtins.c:1265
+#: builtins.c:1264
 msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
 msgstr ""
 
-#: builtins.c:1266
+#: builtins.c:1265
 msgid "PATH            A colon-separated list of directories to search when"
 msgstr ""
 
-#: builtins.c:1267
+#: builtins.c:1266
 msgid "\t\tlooking for commands."
 msgstr ""
 
-#: builtins.c:1268
+#: builtins.c:1267
 msgid "PROMPT_COMMAND  A command to be executed before the printing of each"
 msgstr ""
 
-#: builtins.c:1269
+#: builtins.c:1268
 msgid "\t\tprimary prompt."
 msgstr ""
 
-#: builtins.c:1270
+#: builtins.c:1269
 msgid "PS1             The primary prompt string."
 msgstr ""
 
-#: builtins.c:1271
+#: builtins.c:1270
 msgid "PS2             The secondary prompt string."
 msgstr ""
 
-#: builtins.c:1272
+#: builtins.c:1271
 msgid "PWD\t\tThe full pathname of the current directory."
 msgstr ""
 
-#: builtins.c:1273
+#: builtins.c:1272
 msgid "SHELLOPTS\tA colon-separated list of enabled shell options."
 msgstr ""
 
-#: builtins.c:1274
+#: builtins.c:1273
 msgid "TERM            The name of the current terminal type."
 msgstr ""
 
-#: builtins.c:1275
+#: builtins.c:1274
 msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the"
 msgstr ""
 
-#: builtins.c:1276
+#: builtins.c:1275
 msgid "\t\t`time' reserved word."
 msgstr ""
 
-#: builtins.c:1277
+#: builtins.c:1276
 msgid "auto_resume     Non-null means a command word appearing on a line by"
 msgstr ""
 
-#: builtins.c:1278
+#: builtins.c:1277
 msgid "\t\titself is first looked for in the list of currently"
 msgstr ""
 
-#: builtins.c:1279
+#: builtins.c:1278
 msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
 msgstr ""
 
-#: builtins.c:1280
+#: builtins.c:1279
 msgid "\t\tA value of `exact' means that the command word must"
 msgstr ""
 
-#: builtins.c:1281
+#: builtins.c:1280
 msgid "\t\texactly match a command in the list of stopped jobs.  A"
 msgstr ""
 
-#: builtins.c:1282
+#: builtins.c:1281
 msgid "\t\tvalue of `substring' means that the command word must"
 msgstr ""
 
-#: builtins.c:1283
+#: builtins.c:1282
 msgid "\t\tmatch a substring of the job.  Any other value means that"
 msgstr ""
 
-#: builtins.c:1284
+#: builtins.c:1283
 msgid "\t\tthe command must be a prefix of a stopped job."
 msgstr ""
 
-#: builtins.c:1287
+#: builtins.c:1286
 msgid "histchars       Characters controlling history expansion and quick"
 msgstr ""
 
-#: builtins.c:1288
+#: builtins.c:1287
 msgid "\t\tsubstitution.  The first character is the history"
 msgstr ""
 
-#: builtins.c:1289
+#: builtins.c:1288
 msgid "\t\tsubstitution character, usually `!'.  The second is"
 msgstr ""
 
-#: builtins.c:1290
+#: builtins.c:1289
 msgid "\t\tthe `quick substitution' character, usually `^'.  The"
 msgstr ""
 
-#: builtins.c:1291
+#: builtins.c:1290
 msgid "\t\tthird is the `history comment' character, usually `#'."
 msgstr ""
 
-#: builtins.c:1293
+#: builtins.c:1292
 msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which"
 msgstr ""
 
-#: builtins.c:1294
+#: builtins.c:1293
 msgid "\t\tcommands should be saved on the history list."
 msgstr ""
 
-#: builtins.c:1306
+#: builtins.c:1305
 msgid "+N\tRotates the stack so that the Nth directory (counting"
 msgstr ""
 
-#: builtins.c:1307
+#: builtins.c:1306
 msgid "\tfrom the left of the list shown by `dirs', starting with"
 msgstr ""
 
-#: builtins.c:1308 builtins.c:1312
+#: builtins.c:1307 builtins.c:1311
 msgid "\tzero) is at the top."
 msgstr ""
 
-#: builtins.c:1310
+#: builtins.c:1309
 msgid "-N\tRotates the stack so that the Nth directory (counting"
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1310
 msgid "\tfrom the right of the list shown by `dirs', starting with"
 msgstr ""
 
-#: builtins.c:1314
+#: builtins.c:1313
 msgid "-n\tsuppress the normal change of directory when adding directories"
 msgstr ""
 
-#: builtins.c:1315
+#: builtins.c:1314
 msgid "\tto the stack, so only the stack is manipulated."
 msgstr ""
 
-#: builtins.c:1317
+#: builtins.c:1316
 msgid "dir\tadds DIR to the directory stack at the top, making it the"
 msgstr ""
 
-#: builtins.c:1318
+#: builtins.c:1317
 msgid "\tnew current working directory."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1331
 msgid "+N\tremoves the Nth entry counting from the left of the list"
 msgstr ""
 
-#: builtins.c:1333
+#: builtins.c:1332
 msgid "\tshown by `dirs', starting with zero.  For example: `popd +0'"
 msgstr ""
 
-#: builtins.c:1334
+#: builtins.c:1333
 msgid "\tremoves the first directory, `popd +1' the second."
 msgstr ""
 
-#: builtins.c:1336
+#: builtins.c:1335
 msgid "-N\tremoves the Nth entry counting from the right of the list"
 msgstr ""
 
-#: builtins.c:1337
+#: builtins.c:1336
 msgid "\tshown by `dirs', starting with zero.  For example: `popd -0'"
 msgstr ""
 
-#: builtins.c:1338
+#: builtins.c:1337
 msgid "\tremoves the last directory, `popd -1' the next to last."
 msgstr ""
 
-#: builtins.c:1340
+#: builtins.c:1339
 msgid "-n\tsuppress the normal change of directory when removing directories"
 msgstr ""
 
-#: builtins.c:1341
+#: builtins.c:1340
 msgid "\tfrom the stack, so only the stack is manipulated."
 msgstr ""
 
-#: builtins.c:1363
+#: builtins.c:1362
 msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
 msgstr ""
 
-#: builtins.c:1364 builtins.c:1367
+#: builtins.c:1363 builtins.c:1366
 msgid "\tdirs when invoked without options, starting with zero."
 msgstr ""
 
-#: builtins.c:1366
+#: builtins.c:1365
 msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
 msgstr ""
 
-#: builtins.c:1374
+#: builtins.c:1373
 msgid "Toggle the values of variables controlling optional behavior."
 msgstr ""
 
-#: builtins.c:1375
+#: builtins.c:1374
 msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1375
 msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
 msgstr ""
 
-#: builtins.c:1377
+#: builtins.c:1376
 msgid "status indicates whether each OPTNAME is set or unset.  The -o"
 msgstr ""
 
-#: builtins.c:1378
+#: builtins.c:1377
 msgid "option restricts the OPTNAMEs to those defined for use with"
 msgstr ""
 
-#: builtins.c:1379
+#: builtins.c:1378
 msgid "`set -o'.  With no options, or with the -p option, a list of all"
 msgstr ""
 
-#: builtins.c:1380
+#: builtins.c:1379
 msgid "settable options is displayed, with an indication of whether or"
 msgstr ""
 
-#: builtins.c:1381
+#: builtins.c:1380
 msgid "not each is set."
 msgstr ""
 
-#: builtins.c:1387
+#: builtins.c:1386
 msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
 msgstr ""
 
-#: builtins.c:1388
+#: builtins.c:1387
 msgid "is a character string which contains three types of objects: plain"
 msgstr ""
 
-#: builtins.c:1389
+#: builtins.c:1388
 msgid ""
 "characters, which are simply copied to standard output, character escape"
 msgstr ""
 
-#: builtins.c:1390
+#: builtins.c:1389
 msgid "sequences which are converted and copied to the standard output, and"
 msgstr ""
 
-#: builtins.c:1391
+#: builtins.c:1390
 msgid ""
 "format specifications, each of which causes printing of the next successive"
 msgstr ""
 
-#: builtins.c:1392
+#: builtins.c:1391
 msgid "argument.  In addition to the standard printf(1) formats, %b means to"
 msgstr ""
 
-#: builtins.c:1393
+#: builtins.c:1392
 msgid "expand backslash escape sequences in the corresponding argument, and %q"
 msgstr ""
 
-#: builtins.c:1394
+#: builtins.c:1393
 msgid "means to quote the argument in a way that can be reused as shell input."
 msgstr ""
 
-#: builtins.c:1401
+#: builtins.c:1400
 msgid "For each NAME, specify how arguments are to be completed."
 msgstr ""
 
-#: builtins.c:1402
+#: builtins.c:1401
 msgid "If the -p option is supplied, or if no options are supplied, existing"
 msgstr ""
 
-#: builtins.c:1403
+#: builtins.c:1402
 msgid "completion specifications are printed in a way that allows them to be"
 msgstr ""
 
-#: builtins.c:1404
+#: builtins.c:1403
 msgid "reused as input.  The -r option removes a completion specification for"
 msgstr ""
 
-#: builtins.c:1405
+#: builtins.c:1404
 msgid "each NAME, or, if no NAMEs are supplied, all completion specifications."
 msgstr ""
 
-#: builtins.c:1413
+#: builtins.c:1412
 msgid "Display the possible completions depending on the options.  Intended"
 msgstr ""
 
-#: builtins.c:1414
+#: builtins.c:1413
 msgid ""
 "to be used from within a shell function generating possible completions."
 msgstr ""
 
-#: builtins.c:1415
+#: builtins.c:1414
 msgid "If the optional WORD argument is supplied, matches against WORD are"
 msgstr ""
 
-#: builtins.c:1416
+#: builtins.c:1415
 msgid "generated."
 msgstr ""
diff --git a/po/diffs b/po/diffs
new file mode 100644 (file)
index 0000000..de6c1eb
--- /dev/null
+++ b/po/diffs
@@ -0,0 +1,2938 @@
+*** ../po.orig/bash.pot        Fri Apr 30 22:40:24 2004
+--- bash.pot   Thu Sep  9 17:59:44 2004
+***************
+*** 16,25 ****
+  #: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952
+  #: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973
+! #: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028
+! #: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062
+! #: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309
+! #: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331
+! #: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354
+! #: builtins.c:1362 builtins.c:1365
+  #, fuzzy
+  msgid ""
+--- 16,25 ----
+  #: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952
+  #: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973
+! #: builtins.c:976 builtins.c:1020 builtins.c:1025 builtins.c:1029
+! #: builtins.c:1033 builtins.c:1035 builtins.c:1048 builtins.c:1063
+! #: builtins.c:1226 builtins.c:1231 builtins.c:1304 builtins.c:1308
+! #: builtins.c:1312 builtins.c:1315 builtins.c:1318 builtins.c:1330
+! #: builtins.c:1334 builtins.c:1338 builtins.c:1341 builtins.c:1353
+! #: builtins.c:1361 builtins.c:1364
+  #, fuzzy
+  msgid ""
+***************
+*** 27,31 ****
+  "Project-Id-Version: PACKAGE VERSION\n"
+  "Report-Msgid-Bugs-To: bug-bash@gnu.org\n"
+! "POT-Creation-Date: 2003-12-22 15:34-0500\n"
+  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+--- 27,31 ----
+  "Project-Id-Version: PACKAGE VERSION\n"
+  "Report-Msgid-Bugs-To: bug-bash@gnu.org\n"
+! "POT-Creation-Date: 2004-09-09 17:59-0400\n"
+  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+***************
+*** 44,76 ****
+  msgstr ""
+  
+! #: bashhist.c:321
+  #, c-format
+  msgid "%s: cannot create: %s"
+  msgstr ""
+  
+! #: bashline.c:2791
+  msgid "bash_execute_unix_command: cannot find keymap for command"
+  msgstr ""
+  
+! #: bashline.c:2840
+  #, c-format
+  msgid "%s: first non-whitespace character is not `\"'"
+  msgstr ""
+  
+! #: bashline.c:2869
+  #, c-format
+  msgid "no closing `%c' in %s"
+  msgstr ""
+  
+! #: bashline.c:2903
+  #, c-format
+  msgid "%s: missing colon separator"
+  msgstr ""
+  
+- #: builtins/alias.def:123
+- #, c-format
+- msgid "`%s': invalid alias name"
+- msgstr ""
+- 
+  #: builtins/bind.def:194
+  #, c-format
+--- 44,71 ----
+  msgstr ""
+  
+! #: bashhist.c:322
+  #, c-format
+  msgid "%s: cannot create: %s"
+  msgstr ""
+  
+! #: bashline.c:2916
+  msgid "bash_execute_unix_command: cannot find keymap for command"
+  msgstr ""
+  
+! #: bashline.c:2965
+  #, c-format
+  msgid "%s: first non-whitespace character is not `\"'"
+  msgstr ""
+  
+! #: bashline.c:2994
+  #, c-format
+  msgid "no closing `%c' in %s"
+  msgstr ""
+  
+! #: bashline.c:3028
+  #, c-format
+  msgid "%s: missing colon separator"
+  msgstr ""
+  
+  #: builtins/bind.def:194
+  #, c-format
+***************
+*** 131,147 ****
+  msgstr ""
+  
+! #: builtins/cd.def:188
+  msgid "HOME not set"
+  msgstr ""
+  
+! #: builtins/cd.def:200
+  msgid "OLDPWD not set"
+  msgstr ""
+  
+- #: builtins/cd.def:357
+- #, c-format
+- msgid "write error: %s"
+- msgstr ""
+- 
+  #: builtins/common.c:133 test.c:921
+  msgid "too many arguments"
+--- 126,137 ----
+  msgstr ""
+  
+! #: builtins/cd.def:190
+  msgid "HOME not set"
+  msgstr ""
+  
+! #: builtins/cd.def:202
+  msgid "OLDPWD not set"
+  msgstr ""
+  
+  #: builtins/common.c:133 test.c:921
+  msgid "too many arguments"
+***************
+*** 173,177 ****
+  msgstr ""
+  
+! #: builtins/common.c:194 general.c:229 general.c:234
+  #, c-format
+  msgid "`%s': not a valid identifier"
+--- 163,167 ----
+  msgstr ""
+  
+! #: builtins/common.c:194 general.c:231 general.c:236
+  #, c-format
+  msgid "`%s': not a valid identifier"
+***************
+*** 240,249 ****
+  msgstr ""
+  
+! #: builtins/common.c:486
+  #, c-format
+  msgid "%s: error retrieving current directory: %s: %s\n"
+  msgstr ""
+  
+! #: builtins/common.c:553 builtins/common.c:555
+  #, c-format
+  msgid "%s: ambiguous job spec"
+--- 230,244 ----
+  msgstr ""
+  
+! #: builtins/common.c:276
+! #, c-format
+! msgid "write error: %s"
+! msgstr ""
+! 
+! #: builtins/common.c:484
+  #, c-format
+  msgid "%s: error retrieving current directory: %s: %s\n"
+  msgstr ""
+  
+! #: builtins/common.c:548 builtins/common.c:550
+  #, c-format
+  msgid "%s: ambiguous job spec"
+***************
+*** 276,280 ****
+  msgstr ""
+  
+! #: builtins/declare.def:307 execute_cmd.c:3949
+  #, c-format
+  msgid "%s: readonly function"
+--- 271,275 ----
+  msgstr ""
+  
+! #: builtins/declare.def:307 execute_cmd.c:3969
+  #, c-format
+  msgid "%s: readonly function"
+***************
+*** 310,324 ****
+  msgstr ""
+  
+! #: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395
+  #, c-format
+  msgid "%s: is a directory"
+  msgstr ""
+  
+! #: builtins/evalfile.c:133
+  #, c-format
+  msgid "%s: not a regular file"
+  msgstr ""
+  
+! #: builtins/evalfile.c:141
+  #, c-format
+  msgid "%s: file is too large"
+--- 305,319 ----
+  msgstr ""
+  
+! #: builtins/evalfile.c:129 execute_cmd.c:3841 shell.c:1396
+  #, c-format
+  msgid "%s: is a directory"
+  msgstr ""
+  
+! #: builtins/evalfile.c:134
+  #, c-format
+  msgid "%s: not a regular file"
+  msgstr ""
+  
+! #: builtins/evalfile.c:142
+  #, c-format
+  msgid "%s: file is too large"
+***************
+*** 338,355 ****
+  msgstr ""
+  
+! #: builtins/fc.def:252
+  msgid "no command found"
+  msgstr ""
+  
+! #: builtins/fc.def:317
+  msgid "history specification"
+  msgstr ""
+  
+! #: builtins/fc.def:338
+  #, c-format
+  msgid "%s: cannot open temp file: %s"
+  msgstr ""
+  
+! #: builtins/fg_bg.def:133
+  #, c-format
+  msgid "job %d started without job control"
+--- 333,350 ----
+  msgstr ""
+  
+! #: builtins/fc.def:254
+  msgid "no command found"
+  msgstr ""
+  
+! #: builtins/fc.def:319
+  msgid "history specification"
+  msgstr ""
+  
+! #: builtins/fc.def:340
+  #, c-format
+  msgid "%s: cannot open temp file: %s"
+  msgstr ""
+  
+! #: builtins/fg_bg.def:145
+  #, c-format
+  msgid "job %d started without job control"
+***************
+*** 431,435 ****
+  msgstr ""
+  
+! #: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511
+  msgid "expression expected"
+  msgstr ""
+--- 426,430 ----
+  msgstr ""
+  
+! #: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512
+  msgid "expression expected"
+  msgstr ""
+***************
+*** 440,449 ****
+  msgstr ""
+  
+! #: builtins/printf.def:408
+  #, c-format
+  msgid "`%c': invalid format character"
+  msgstr ""
+  
+! #: builtins/printf.def:601
+  msgid "missing hex digit for \\x"
+  msgstr ""
+--- 435,444 ----
+  msgstr ""
+  
+! #: builtins/printf.def:423
+  #, c-format
+  msgid "`%c': invalid format character"
+  msgstr ""
+  
+! #: builtins/printf.def:629
+  msgid "missing hex digit for \\x"
+  msgstr ""
+***************
+*** 457,497 ****
+  msgstr ""
+  
+! #: builtins/pushd.def:652 builtins.c:1351
+  msgid "Display the list of currently remembered directories.  Directories"
+  msgstr ""
+  
+! #: builtins/pushd.def:653 builtins.c:1352
+  msgid "find their way onto the list with the `pushd' command; you can get"
+  msgstr ""
+  
+! #: builtins/pushd.def:654 builtins.c:1353
+  msgid "back up through the list with the `popd' command."
+  msgstr ""
+  
+! #: builtins/pushd.def:656 builtins.c:1355
+  msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+  msgstr ""
+  
+! #: builtins/pushd.def:657 builtins.c:1356
+  msgid "of directories which are relative to your home directory.  This means"
+  msgstr ""
+  
+! #: builtins/pushd.def:658 builtins.c:1357
+  msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
+  msgstr ""
+  
+! #: builtins/pushd.def:659 builtins.c:1358
+  msgid "causes `dirs' to print the directory stack with one entry per line,"
+  msgstr ""
+  
+! #: builtins/pushd.def:660 builtins.c:1359
+  msgid "prepending the directory name with its position in the stack.  The -p"
+  msgstr ""
+  
+! #: builtins/pushd.def:661 builtins.c:1360
+  msgid "flag does the same thing, but the stack position is not prepended."
+  msgstr ""
+  
+! #: builtins/pushd.def:662 builtins.c:1361
+  msgid "The -c flag clears the directory stack by deleting all of the elements."
+  msgstr ""
+--- 452,492 ----
+  msgstr ""
+  
+! #: builtins/pushd.def:652 builtins.c:1350
+  msgid "Display the list of currently remembered directories.  Directories"
+  msgstr ""
+  
+! #: builtins/pushd.def:653 builtins.c:1351
+  msgid "find their way onto the list with the `pushd' command; you can get"
+  msgstr ""
+  
+! #: builtins/pushd.def:654 builtins.c:1352
+  msgid "back up through the list with the `popd' command."
+  msgstr ""
+  
+! #: builtins/pushd.def:656 builtins.c:1354
+  msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+  msgstr ""
+  
+! #: builtins/pushd.def:657 builtins.c:1355
+  msgid "of directories which are relative to your home directory.  This means"
+  msgstr ""
+  
+! #: builtins/pushd.def:658 builtins.c:1356
+  msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
+  msgstr ""
+  
+! #: builtins/pushd.def:659 builtins.c:1357
+  msgid "causes `dirs' to print the directory stack with one entry per line,"
+  msgstr ""
+  
+! #: builtins/pushd.def:660 builtins.c:1358
+  msgid "prepending the directory name with its position in the stack.  The -p"
+  msgstr ""
+  
+! #: builtins/pushd.def:661 builtins.c:1359
+  msgid "flag does the same thing, but the stack position is not prepended."
+  msgstr ""
+  
+! #: builtins/pushd.def:662 builtins.c:1360
+  msgid "The -c flag clears the directory stack by deleting all of the elements."
+  msgstr ""
+***************
+*** 510,522 ****
+  msgstr ""
+  
+! #: builtins/pushd.def:673 builtins.c:1302
+  msgid "Adds a directory to the top of the directory stack, or rotates"
+  msgstr ""
+  
+! #: builtins/pushd.def:674 builtins.c:1303
+  msgid "the stack, making the new top of the stack the current working"
+  msgstr ""
+  
+! #: builtins/pushd.def:675 builtins.c:1304
+  msgid "directory.  With no arguments, exchanges the top two directories."
+  msgstr ""
+--- 505,517 ----
+  msgstr ""
+  
+! #: builtins/pushd.def:673 builtins.c:1301
+  msgid "Adds a directory to the top of the directory stack, or rotates"
+  msgstr ""
+  
+! #: builtins/pushd.def:674 builtins.c:1302
+  msgid "the stack, making the new top of the stack the current working"
+  msgstr ""
+  
+! #: builtins/pushd.def:675 builtins.c:1303
+  msgid "directory.  With no arguments, exchanges the top two directories."
+  msgstr ""
+***************
+*** 558,575 ****
+  msgstr ""
+  
+! #: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320
+! #: builtins.c:1343
+  msgid "You can see the directory stack with the `dirs' command."
+  msgstr ""
+  
+! #: builtins/pushd.def:696 builtins.c:1328
+  msgid "Removes entries from the directory stack.  With no arguments,"
+  msgstr ""
+  
+! #: builtins/pushd.def:697 builtins.c:1329
+  msgid "removes the top directory from the stack, and cd's to the new"
+  msgstr ""
+  
+! #: builtins/pushd.def:698 builtins.c:1330
+  msgid "top directory."
+  msgstr ""
+--- 553,570 ----
+  msgstr ""
+  
+! #: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1319
+! #: builtins.c:1342
+  msgid "You can see the directory stack with the `dirs' command."
+  msgstr ""
+  
+! #: builtins/pushd.def:696 builtins.c:1327
+  msgid "Removes entries from the directory stack.  With no arguments,"
+  msgstr ""
+  
+! #: builtins/pushd.def:697 builtins.c:1328
+  msgid "removes the top directory from the stack, and cd's to the new"
+  msgstr ""
+  
+! #: builtins/pushd.def:698 builtins.c:1329
+  msgid "top directory."
+  msgstr ""
+***************
+*** 685,714 ****
+  msgstr ""
+  
+! #: builtins/type.def:231
+  #, c-format
+  msgid "%s is aliased to `%s'\n"
+  msgstr ""
+  
+! #: builtins/type.def:252
+  #, c-format
+  msgid "%s is a shell keyword\n"
+  msgstr ""
+  
+! #: builtins/type.def:272
+  #, c-format
+  msgid "%s is a function\n"
+  msgstr ""
+  
+! #: builtins/type.def:297
+  #, c-format
+  msgid "%s is a shell builtin\n"
+  msgstr ""
+  
+! #: builtins/type.def:318
+  #, c-format
+  msgid "%s is %s\n"
+  msgstr ""
+  
+! #: builtins/type.def:338
+  #, c-format
+  msgid "%s is hashed (%s)\n"
+--- 680,709 ----
+  msgstr ""
+  
+! #: builtins/type.def:232
+  #, c-format
+  msgid "%s is aliased to `%s'\n"
+  msgstr ""
+  
+! #: builtins/type.def:253
+  #, c-format
+  msgid "%s is a shell keyword\n"
+  msgstr ""
+  
+! #: builtins/type.def:273
+  #, c-format
+  msgid "%s is a function\n"
+  msgstr ""
+  
+! #: builtins/type.def:298
+  #, c-format
+  msgid "%s is a shell builtin\n"
+  msgstr ""
+  
+! #: builtins/type.def:319
+  #, c-format
+  msgid "%s is %s\n"
+  msgstr ""
+  
+! #: builtins/type.def:339
+  #, c-format
+  msgid "%s is hashed (%s)\n"
+***************
+*** 744,748 ****
+  msgstr ""
+  
+! #: builtins/umask.def:279
+  #, c-format
+  msgid "`%c': invalid symbolic mode character"
+--- 739,743 ----
+  msgstr ""
+  
+! #: builtins/umask.def:281
+  #, c-format
+  msgid "`%c': invalid symbolic mode character"
+***************
+*** 788,883 ****
+  msgstr ""
+  
+! #: execute_cmd.c:466
+  #, c-format
+  msgid "cannot redirect standard input from /dev/null: %s"
+  msgstr ""
+  
+! #: execute_cmd.c:1036
+  #, c-format
+  msgid "TIMEFORMAT: `%c': invalid format character"
+  msgstr ""
+  
+! #: execute_cmd.c:3521
+  #, c-format
+  msgid "%s: restricted: cannot specify `/' in command names"
+  msgstr ""
+  
+! #: execute_cmd.c:3609
+  #, c-format
+  msgid "%s: command not found"
+  msgstr ""
+  
+! #: execute_cmd.c:3839
+  #, c-format
+  msgid "%s: %s: bad interpreter"
+  msgstr ""
+  
+! #: execute_cmd.c:3876
+  #, c-format
+  msgid "%s: cannot execute binary file"
+  msgstr ""
+  
+! #: execute_cmd.c:3988
+  #, c-format
+  msgid "cannot duplicate fd %d to fd %d"
+  msgstr ""
+  
+! #: expr.c:239
+  msgid "expression recursion level exceeded"
+  msgstr ""
+  
+! #: expr.c:263
+  msgid "recursion stack underflow"
+  msgstr ""
+  
+! #: expr.c:374
+  msgid "syntax error in expression"
+  msgstr ""
+  
+! #: expr.c:414
+  msgid "attempted assignment to non-variable"
+  msgstr ""
+  
+! #: expr.c:435 expr.c:440 expr.c:750
+  msgid "division by 0"
+  msgstr ""
+  
+! #: expr.c:466
+  msgid "bug: bad expassign token"
+  msgstr ""
+  
+! #: expr.c:508
+  msgid "`:' expected for conditional expression"
+  msgstr ""
+  
+! #: expr.c:775
+  msgid "exponent less than 0"
+  msgstr ""
+  
+! #: expr.c:819
+  msgid "identifier expected after pre-increment or pre-decrement"
+  msgstr ""
+  
+! #: expr.c:847
+  msgid "missing `)'"
+  msgstr ""
+  
+! #: expr.c:871
+  msgid "syntax error: operand expected"
+  msgstr ""
+  
+! #: expr.c:1146
+  msgid "invalid number"
+  msgstr ""
+  
+! #: expr.c:1150
+  msgid "invalid arithmetic base"
+  msgstr ""
+  
+! #: expr.c:1170
+  msgid "value too great for base"
+  msgstr ""
+  
+! #: general.c:60
+  msgid "getcwd: cannot access parent directories"
+  msgstr ""
+--- 783,878 ----
+  msgstr ""
+  
+! #: execute_cmd.c:467
+  #, c-format
+  msgid "cannot redirect standard input from /dev/null: %s"
+  msgstr ""
+  
+! #: execute_cmd.c:1037
+  #, c-format
+  msgid "TIMEFORMAT: `%c': invalid format character"
+  msgstr ""
+  
+! #: execute_cmd.c:3541
+  #, c-format
+  msgid "%s: restricted: cannot specify `/' in command names"
+  msgstr ""
+  
+! #: execute_cmd.c:3629
+  #, c-format
+  msgid "%s: command not found"
+  msgstr ""
+  
+! #: execute_cmd.c:3859
+  #, c-format
+  msgid "%s: %s: bad interpreter"
+  msgstr ""
+  
+! #: execute_cmd.c:3896
+  #, c-format
+  msgid "%s: cannot execute binary file"
+  msgstr ""
+  
+! #: execute_cmd.c:4008
+  #, c-format
+  msgid "cannot duplicate fd %d to fd %d"
+  msgstr ""
+  
+! #: expr.c:240
+  msgid "expression recursion level exceeded"
+  msgstr ""
+  
+! #: expr.c:264
+  msgid "recursion stack underflow"
+  msgstr ""
+  
+! #: expr.c:375
+  msgid "syntax error in expression"
+  msgstr ""
+  
+! #: expr.c:415
+  msgid "attempted assignment to non-variable"
+  msgstr ""
+  
+! #: expr.c:436 expr.c:441 expr.c:751
+  msgid "division by 0"
+  msgstr ""
+  
+! #: expr.c:467
+  msgid "bug: bad expassign token"
+  msgstr ""
+  
+! #: expr.c:509
+  msgid "`:' expected for conditional expression"
+  msgstr ""
+  
+! #: expr.c:776
+  msgid "exponent less than 0"
+  msgstr ""
+  
+! #: expr.c:821
+  msgid "identifier expected after pre-increment or pre-decrement"
+  msgstr ""
+  
+! #: expr.c:849
+  msgid "missing `)'"
+  msgstr ""
+  
+! #: expr.c:892
+  msgid "syntax error: operand expected"
+  msgstr ""
+  
+! #: expr.c:1178
+  msgid "invalid number"
+  msgstr ""
+  
+! #: expr.c:1182
+  msgid "invalid arithmetic base"
+  msgstr ""
+  
+! #: expr.c:1202
+  msgid "value too great for base"
+  msgstr ""
+  
+! #: general.c:62
+  msgid "getcwd: cannot access parent directories"
+  msgstr ""
+***************
+*** 893,932 ****
+  msgstr ""
+  
+! #: jobs.c:693
+  #, c-format
+  msgid "deleting stopped job %d with process group %ld"
+  msgstr ""
+  
+! #: jobs.c:1001
+  #, c-format
+  msgid "describe_pid: %ld: no such pid"
+  msgstr ""
+  
+! #: jobs.c:1632 nojobs.c:648
+  #, c-format
+  msgid "wait: pid %ld is not a child of this shell"
+  msgstr ""
+  
+! #: jobs.c:1815
+  #, c-format
+  msgid "wait_for: No record of process %ld"
+  msgstr ""
+  
+! #: jobs.c:2062
+  #, c-format
+  msgid "wait_for_job: job %d is stopped"
+  msgstr ""
+  
+! #: jobs.c:2284
+  #, c-format
+  msgid "%s: job has terminated"
+  msgstr ""
+  
+! #: jobs.c:2293
+  #, c-format
+  msgid "%s: job %d already in background"
+  msgstr ""
+  
+! #: jobs.c:3037
+  msgid "no job control in this shell"
+  msgstr ""
+--- 888,927 ----
+  msgstr ""
+  
+! #: jobs.c:694
+  #, c-format
+  msgid "deleting stopped job %d with process group %ld"
+  msgstr ""
+  
+! #: jobs.c:1002
+  #, c-format
+  msgid "describe_pid: %ld: no such pid"
+  msgstr ""
+  
+! #: jobs.c:1633 nojobs.c:648
+  #, c-format
+  msgid "wait: pid %ld is not a child of this shell"
+  msgstr ""
+  
+! #: jobs.c:1821
+  #, c-format
+  msgid "wait_for: No record of process %ld"
+  msgstr ""
+  
+! #: jobs.c:2068
+  #, c-format
+  msgid "wait_for_job: job %d is stopped"
+  msgstr ""
+  
+! #: jobs.c:2290
+  #, c-format
+  msgid "%s: job has terminated"
+  msgstr ""
+  
+! #: jobs.c:2299
+  #, c-format
+  msgid "%s: job %d already in background"
+  msgstr ""
+  
+! #: jobs.c:3043
+  msgid "no job control in this shell"
+  msgstr ""
+***************
+*** 1064,1073 ****
+  msgstr ""
+  
+! #: make_cmd.c:560
+  #, c-format
+  msgid "make_here_document: bad instruction type %d"
+  msgstr ""
+  
+! #: make_cmd.c:730
+  #, c-format
+  msgid "make_redirection: redirection instruction `%d' out of range"
+--- 1059,1068 ----
+  msgstr ""
+  
+! #: make_cmd.c:561
+  #, c-format
+  msgid "make_here_document: bad instruction type %d"
+  msgstr ""
+  
+! #: make_cmd.c:731
+  #, c-format
+  msgid "make_redirection: redirection instruction `%d' out of range"
+***************
+*** 1143,1174 ****
+  msgstr ""
+  
+! #: parse.y:4400
+  #, c-format
+  msgid "syntax error near unexpected token `%s'"
+  msgstr ""
+  
+! #: parse.y:4418
+  #, c-format
+  msgid "syntax error near `%s'"
+  msgstr ""
+  
+! #: parse.y:4428
+  msgid "syntax error: unexpected end of file"
+  msgstr ""
+  
+! #: parse.y:4428
+  msgid "syntax error"
+  msgstr ""
+  
+! #: parse.y:4490
+  #, c-format
+  msgid "Use \"%s\" to leave the shell.\n"
+  msgstr ""
+  
+! #: parse.y:4649
+  msgid "unexpected EOF while looking for matching `)'"
+  msgstr ""
+  
+! #: pcomplete.c:988
+  #, c-format
+  msgid "completion: function `%s' not found"
+--- 1138,1169 ----
+  msgstr ""
+  
+! #: parse.y:4409
+  #, c-format
+  msgid "syntax error near unexpected token `%s'"
+  msgstr ""
+  
+! #: parse.y:4427
+  #, c-format
+  msgid "syntax error near `%s'"
+  msgstr ""
+  
+! #: parse.y:4437
+  msgid "syntax error: unexpected end of file"
+  msgstr ""
+  
+! #: parse.y:4437
+  msgid "syntax error"
+  msgstr ""
+  
+! #: parse.y:4499
+  #, c-format
+  msgid "Use \"%s\" to leave the shell.\n"
+  msgstr ""
+  
+! #: parse.y:4658
+  msgid "unexpected EOF while looking for matching `)'"
+  msgstr ""
+  
+! #: pcomplete.c:998
+  #, c-format
+  msgid "completion: function `%s' not found"
+***************
+*** 1180,1189 ****
+  msgstr ""
+  
+! #: print_cmd.c:260
+  #, c-format
+  msgid "print_command: bad connector `%d'"
+  msgstr ""
+  
+! #: print_cmd.c:1172
+  #, c-format
+  msgid "cprintf: `%c': invalid format character"
+--- 1175,1184 ----
+  msgstr ""
+  
+! #: print_cmd.c:261
+  #, c-format
+  msgid "print_command: bad connector `%d'"
+  msgstr ""
+  
+! #: print_cmd.c:1211
+  #, c-format
+  msgid "cprintf: `%c': invalid format character"
+***************
+*** 1235,1243 ****
+  msgstr ""
+  
+! #: shell.c:1590
+  msgid "I have no name!"
+  msgstr ""
+  
+! #: shell.c:1725
+  #, c-format
+  msgid ""
+--- 1230,1238 ----
+  msgstr ""
+  
+! #: shell.c:1591
+  msgid "I have no name!"
+  msgstr ""
+  
+! #: shell.c:1726
+  #, c-format
+  msgid ""
+***************
+*** 1246,1356 ****
+  msgstr ""
+  
+! #: shell.c:1727
+  msgid "GNU long options:\n"
+  msgstr ""
+  
+! #: shell.c:1731
+  msgid "Shell options:\n"
+  msgstr ""
+  
+! #: shell.c:1732
+  msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+  msgstr ""
+  
+! #: shell.c:1747
+  #, c-format
+  msgid "\t-%s or -o option\n"
+  msgstr ""
+  
+! #: shell.c:1753
+  #, c-format
+  msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+  msgstr ""
+  
+! #: shell.c:1754
+  #, c-format
+  msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+  msgstr ""
+  
+! #: shell.c:1755
+  msgid "Use the `bashbug' command to report bugs.\n"
+  msgstr ""
+  
+! #: sig.c:485
+  #, c-format
+  msgid "sigprocmask: %d: invalid operation"
+  msgstr ""
+  
+! #: subst.c:1011
+  #, c-format
+  msgid "bad substitution: no closing `%s' in %s"
+  msgstr ""
+  
+! #: subst.c:2020
+  #, c-format
+  msgid "%s: cannot assign list to array member"
+  msgstr ""
+  
+! #: subst.c:3516 subst.c:3532
+  msgid "cannot make pipe for process substitution"
+  msgstr ""
+  
+! #: subst.c:3563
+  msgid "cannot make child for process substitution"
+  msgstr ""
+  
+! #: subst.c:3608
+  #, c-format
+  msgid "cannot open named pipe %s for reading"
+  msgstr ""
+  
+! #: subst.c:3610
+  #, c-format
+  msgid "cannot open named pipe %s for writing"
+  msgstr ""
+  
+! #: subst.c:3618
+  #, c-format
+  msgid "cannout reset nodelay mode for fd %d"
+  msgstr ""
+  
+! #: subst.c:3628
+  #, c-format
+  msgid "cannot duplicate named pipe %s as fd %d"
+  msgstr ""
+  
+! #: subst.c:3803
+  msgid "cannot make pipe for command substitution"
+  msgstr ""
+  
+! #: subst.c:3832
+  msgid "cannot make child for command substitution"
+  msgstr ""
+  
+! #: subst.c:3849
+  msgid "command_substitute: cannot duplicate pipe as fd 1"
+  msgstr ""
+  
+! #: subst.c:4284
+  #, c-format
+  msgid "%s: parameter null or not set"
+  msgstr ""
+  
+! #: subst.c:4529
+  #, c-format
+  msgid "%s: substring expression < 0"
+  msgstr ""
+  
+! #: subst.c:5209
+  #, c-format
+  msgid "%s: bad substitution"
+  msgstr ""
+  
+! #: subst.c:5283
+  #, c-format
+  msgid "$%s: cannot assign in this way"
+  msgstr ""
+  
+! #: subst.c:6652
+  #, c-format
+  msgid "no match: %s"
+--- 1241,1351 ----
+  msgstr ""
+  
+! #: shell.c:1728
+  msgid "GNU long options:\n"
+  msgstr ""
+  
+! #: shell.c:1732
+  msgid "Shell options:\n"
+  msgstr ""
+  
+! #: shell.c:1733
+  msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+  msgstr ""
+  
+! #: shell.c:1748
+  #, c-format
+  msgid "\t-%s or -o option\n"
+  msgstr ""
+  
+! #: shell.c:1754
+  #, c-format
+  msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+  msgstr ""
+  
+! #: shell.c:1755
+  #, c-format
+  msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+  msgstr ""
+  
+! #: shell.c:1756
+  msgid "Use the `bashbug' command to report bugs.\n"
+  msgstr ""
+  
+! #: sig.c:490
+  #, c-format
+  msgid "sigprocmask: %d: invalid operation"
+  msgstr ""
+  
+! #: subst.c:1046
+  #, c-format
+  msgid "bad substitution: no closing `%s' in %s"
+  msgstr ""
+  
+! #: subst.c:2053
+  #, c-format
+  msgid "%s: cannot assign list to array member"
+  msgstr ""
+  
+! #: subst.c:3880 subst.c:3896
+  msgid "cannot make pipe for process substitution"
+  msgstr ""
+  
+! #: subst.c:3927
+  msgid "cannot make child for process substitution"
+  msgstr ""
+  
+! #: subst.c:3972
+  #, c-format
+  msgid "cannot open named pipe %s for reading"
+  msgstr ""
+  
+! #: subst.c:3974
+  #, c-format
+  msgid "cannot open named pipe %s for writing"
+  msgstr ""
+  
+! #: subst.c:3982
+  #, c-format
+  msgid "cannout reset nodelay mode for fd %d"
+  msgstr ""
+  
+! #: subst.c:3992
+  #, c-format
+  msgid "cannot duplicate named pipe %s as fd %d"
+  msgstr ""
+  
+! #: subst.c:4167
+  msgid "cannot make pipe for command substitution"
+  msgstr ""
+  
+! #: subst.c:4196
+  msgid "cannot make child for command substitution"
+  msgstr ""
+  
+! #: subst.c:4213
+  msgid "command_substitute: cannot duplicate pipe as fd 1"
+  msgstr ""
+  
+! #: subst.c:4671
+  #, c-format
+  msgid "%s: parameter null or not set"
+  msgstr ""
+  
+! #: subst.c:4937
+  #, c-format
+  msgid "%s: substring expression < 0"
+  msgstr ""
+  
+! #: subst.c:5667
+  #, c-format
+  msgid "%s: bad substitution"
+  msgstr ""
+  
+! #: subst.c:5741
+  #, c-format
+  msgid "$%s: cannot assign in this way"
+  msgstr ""
+  
+! #: subst.c:7110
+  #, c-format
+  msgid "no match: %s"
+***************
+*** 1409,1449 ****
+  msgstr ""
+  
+! #: variables.c:310
+  #, c-format
+  msgid "error importing function definition for `%s'"
+  msgstr ""
+  
+! #: variables.c:670
+  #, c-format
+  msgid "shell level (%d) too high, resetting to 1"
+  msgstr ""
+  
+! #: variables.c:1610
+  msgid "make_local_variable: no function context at current scope"
+  msgstr ""
+  
+! #: variables.c:2709
+  msgid "all_local_variables: no function context at current scope"
+  msgstr ""
+  
+! #: variables.c:2923 variables.c:2932
+  #, c-format
+  msgid "invalid character %d in exportstr for %s"
+  msgstr ""
+  
+! #: variables.c:2938
+  #, c-format
+  msgid "no `=' in exportstr for %s"
+  msgstr ""
+  
+! #: variables.c:3363
+  msgid "pop_var_context: head of shell_variables not a function context"
+  msgstr ""
+  
+! #: variables.c:3376
+  msgid "pop_var_context: no global_variables context"
+  msgstr ""
+  
+! #: variables.c:3442
+  msgid "pop_scope: head of shell_variables not a temporary environment scope"
+  msgstr ""
+--- 1404,1444 ----
+  msgstr ""
+  
+! #: variables.c:314
+  #, c-format
+  msgid "error importing function definition for `%s'"
+  msgstr ""
+  
+! #: variables.c:674
+  #, c-format
+  msgid "shell level (%d) too high, resetting to 1"
+  msgstr ""
+  
+! #: variables.c:1617
+  msgid "make_local_variable: no function context at current scope"
+  msgstr ""
+  
+! #: variables.c:2724
+  msgid "all_local_variables: no function context at current scope"
+  msgstr ""
+  
+! #: variables.c:2938 variables.c:2947
+  #, c-format
+  msgid "invalid character %d in exportstr for %s"
+  msgstr ""
+  
+! #: variables.c:2953
+  #, c-format
+  msgid "no `=' in exportstr for %s"
+  msgstr ""
+  
+! #: variables.c:3378
+  msgid "pop_var_context: head of shell_variables not a function context"
+  msgstr ""
+  
+! #: variables.c:3391
+  msgid "pop_var_context: no global_variables context"
+  msgstr ""
+  
+! #: variables.c:3457
+  msgid "pop_scope: head of shell_variables not a temporary environment scope"
+  msgstr ""
+***************
+*** 3272,3739 ****
+  
+  #: builtins.c:1000
+! msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
+  msgstr ""
+  
+  #: builtins.c:1001
+! msgid "reset to their original values.  If ARG is the null string each"
+  msgstr ""
+  
+  #: builtins.c:1002
+! msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
+  msgstr ""
+  
+  #: builtins.c:1003
+! msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
+  msgstr ""
+  
+  #: builtins.c:1004
+! msgid "the shell.  If a SIGNAL_SPEC is DEBUG, ARG is executed after every"
+  msgstr ""
+  
+  #: builtins.c:1005
+! msgid "command.  If ARG is `-p' then the trap commands associated with"
+  msgstr ""
+  
+  #: builtins.c:1006
+! msgid "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
+  msgstr ""
+  
+  #: builtins.c:1007
+! msgid "only `-p' is given, trap prints the list of commands associated with"
+  msgstr ""
+  
+  #: builtins.c:1008
+  msgid ""
+! "each signal number.  Each SIGNAL_SPEC is either a signal name in <signal.h>"
+  msgstr ""
+  
+  #: builtins.c:1009
+! msgid "or a signal number.  `trap -l' prints a list of signal names and their"
+  msgstr ""
+  
+  #: builtins.c:1010
+! msgid "corresponding numbers.  Note that a signal can be sent to the shell"
+  msgstr ""
+  
+  #: builtins.c:1011
+! msgid "with \"kill -signal $$\"."
+  msgstr ""
+  
+! #: builtins.c:1017
+! msgid "For each NAME, indicate how it would be interpreted if used as a"
+  msgstr ""
+  
+  #: builtins.c:1018
+  msgid "command name."
+  msgstr ""
+  
+! #: builtins.c:1020
+  msgid "If the -t option is used, `type' outputs a single word which is one of"
+  msgstr ""
+  
+! #: builtins.c:1021
+  msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+  msgstr ""
+  
+! #: builtins.c:1022
+  msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
+  msgstr ""
+  
+! #: builtins.c:1023
+  msgid "or unfound, respectively."
+  msgstr ""
+  
+! #: builtins.c:1025
+  msgid "If the -p flag is used, `type' either returns the name of the disk"
+  msgstr ""
+  
+! #: builtins.c:1026
+  msgid "file that would be executed, or nothing if `type -t NAME' would not"
+  msgstr ""
+  
+! #: builtins.c:1027
+  msgid "return `file'."
+  msgstr ""
+  
+! #: builtins.c:1029
+  msgid "If the -a flag is used, `type' displays all of the places that contain"
+  msgstr ""
+  
+! #: builtins.c:1030
+  msgid "an executable named `file'.  This includes aliases, builtins, and"
+  msgstr ""
+  
+! #: builtins.c:1031
+  msgid "functions, if and only if the -p flag is not also used."
+  msgstr ""
+  
+! #: builtins.c:1033
+  msgid "The -f flag suppresses shell function lookup."
+  msgstr ""
+  
+! #: builtins.c:1035
+  msgid "The -P flag forces a PATH search for each NAME, even if it is an alias,"
+  msgstr ""
+  
+! #: builtins.c:1036
+  msgid "builtin, or function, and returns the name of the disk file that would"
+  msgstr ""
+  
+! #: builtins.c:1037
+  msgid "be executed."
+  msgstr ""
+  
+! #: builtins.c:1044
+  msgid "Ulimit provides control over the resources available to processes"
+  msgstr ""
+  
+! #: builtins.c:1045
+  msgid "started by the shell, on systems that allow such control.  If an"
+  msgstr ""
+  
+! #: builtins.c:1046
+  msgid "option is given, it is interpreted as follows:"
+  msgstr ""
+  
+! #: builtins.c:1048
+  msgid "    -S\tuse the `soft' resource limit"
+  msgstr ""
+  
+! #: builtins.c:1049
+  msgid "    -H\tuse the `hard' resource limit"
+  msgstr ""
+  
+! #: builtins.c:1050
+  msgid "    -a\tall current limits are reported"
+  msgstr ""
+  
+! #: builtins.c:1051
+  msgid "    -c\tthe maximum size of core files created"
+  msgstr ""
+  
+! #: builtins.c:1052
+  msgid "    -d\tthe maximum size of a process's data segment"
+  msgstr ""
+  
+! #: builtins.c:1053
+  msgid "    -f\tthe maximum size of files created by the shell"
+  msgstr ""
+  
+! #: builtins.c:1054
+  msgid "    -l\tthe maximum size a process may lock into memory"
+  msgstr ""
+  
+! #: builtins.c:1055
+  msgid "    -m\tthe maximum resident set size"
+  msgstr ""
+  
+! #: builtins.c:1056
+  msgid "    -n\tthe maximum number of open file descriptors"
+  msgstr ""
+  
+! #: builtins.c:1057
+  msgid "    -p\tthe pipe buffer size"
+  msgstr ""
+  
+! #: builtins.c:1058
+  msgid "    -s\tthe maximum stack size"
+  msgstr ""
+  
+! #: builtins.c:1059
+  msgid "    -t\tthe maximum amount of cpu time in seconds"
+  msgstr ""
+  
+! #: builtins.c:1060
+  msgid "    -u\tthe maximum number of user processes"
+  msgstr ""
+  
+! #: builtins.c:1061
+  msgid "    -v\tthe size of virtual memory"
+  msgstr ""
+  
+! #: builtins.c:1063
+  msgid "If LIMIT is given, it is the new value of the specified resource;"
+  msgstr ""
+  
+! #: builtins.c:1064
+  msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for"
+  msgstr ""
+  
+! #: builtins.c:1065
+  msgid ""
+  "the current soft limit, the current hard limit, and no limit, respectively."
+  msgstr ""
+  
+! #: builtins.c:1066
+  msgid "Otherwise, the current value of the specified resource is printed."
+  msgstr ""
+  
+! #: builtins.c:1067
+  msgid "If no option is given, then -f is assumed.  Values are in 1024-byte"
+  msgstr ""
+  
+! #: builtins.c:1068
+  msgid "increments, except for -t, which is in seconds, -p, which is in"
+  msgstr ""
+  
+! #: builtins.c:1069
+  msgid "increments of 512 bytes, and -u, which is an unscaled number of"
+  msgstr ""
+  
+! #: builtins.c:1070
+  msgid "processes."
+  msgstr ""
+  
+! #: builtins.c:1077
+  msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+  msgstr ""
+  
+! #: builtins.c:1078
+  msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+  msgstr ""
+  
+! #: builtins.c:1079
+  msgid "option makes the output symbolic; otherwise an octal number is output."
+  msgstr ""
+  
+! #: builtins.c:1080
+  msgid "If `-p' is supplied, and MODE is omitted, the output is in a form"
+  msgstr ""
+  
+! #: builtins.c:1081
+  msgid "that may be used as input.  If MODE begins with a digit, it is"
+  msgstr ""
+  
+! #: builtins.c:1082
+  msgid "interpreted as an octal number, otherwise it is a symbolic mode string"
+  msgstr ""
+  
+! #: builtins.c:1083
+  msgid "like that accepted by chmod(1)."
+  msgstr ""
+  
+! #: builtins.c:1090 builtins.c:1102
+  msgid "Wait for the specified process and report its termination status.  If"
+  msgstr ""
+  
+! #: builtins.c:1091 builtins.c:1103
+  msgid "N is not given, all currently active child processes are waited for,"
+  msgstr ""
+  
+! #: builtins.c:1092
+  msgid "and the return code is zero.  N may be a process ID or a job"
+  msgstr ""
+  
+! #: builtins.c:1093
+  msgid "specification; if a job spec is given, all processes in the job's"
+  msgstr ""
+  
+! #: builtins.c:1094
+  msgid "pipeline are waited for."
+  msgstr ""
+  
+! #: builtins.c:1104
+  msgid "and the return code is zero.  N is a process ID; if it is not given,"
+  msgstr ""
+  
+! #: builtins.c:1105
+  msgid "all child processes of the shell are waited for."
+  msgstr ""
+  
+! #: builtins.c:1112
+  msgid "The `for' loop executes a sequence of commands for each member in a"
+  msgstr ""
+  
+! #: builtins.c:1113
+  msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+  msgstr ""
+  
+! #: builtins.c:1114
+  msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
+  msgstr ""
+  
+! #: builtins.c:1115
+  msgid "the COMMANDS are executed."
+  msgstr ""
+  
+! #: builtins.c:1121
+  msgid "Equivalent to"
+  msgstr ""
+  
+! #: builtins.c:1122
+  msgid "\t(( EXP1 ))"
+  msgstr ""
+  
+! #: builtins.c:1123
+  msgid "\twhile (( EXP2 )); do"
+  msgstr ""
+  
+! #: builtins.c:1124
+  msgid "\t\tCOMMANDS"
+  msgstr ""
+  
+! #: builtins.c:1125
+  msgid "\t\t(( EXP3 ))"
+  msgstr ""
+  
+! #: builtins.c:1126
+  msgid "\tdone"
+  msgstr ""
+  
+! #: builtins.c:1127
+  msgid "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
+  msgstr ""
+  
+! #: builtins.c:1128
+  msgid "omitted, it behaves as if it evaluates to 1."
+  msgstr ""
+  
+! #: builtins.c:1134
+  msgid "The WORDS are expanded, generating a list of words.  The"
+  msgstr ""
+  
+! #: builtins.c:1135
+  msgid "set of expanded words is printed on the standard error, each"
+  msgstr ""
+  
+! #: builtins.c:1136
+  msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
+  msgstr ""
+  
+! #: builtins.c:1137
+  msgid "is assumed.  The PS3 prompt is then displayed and a line read"
+  msgstr ""
+  
+! #: builtins.c:1138
+  msgid "from the standard input.  If the line consists of the number"
+  msgstr ""
+  
+! #: builtins.c:1139
+  msgid "corresponding to one of the displayed words, then NAME is set"
+  msgstr ""
+  
+! #: builtins.c:1140
+  msgid "to that word.  If the line is empty, WORDS and the prompt are"
+  msgstr ""
+  
+! #: builtins.c:1141
+  msgid "redisplayed.  If EOF is read, the command completes.  Any other"
+  msgstr ""
+  
+! #: builtins.c:1142
+  msgid "value read causes NAME to be set to null.  The line read is saved"
+  msgstr ""
+  
+! #: builtins.c:1143
+  msgid "in the variable REPLY.  COMMANDS are executed after each selection"
+  msgstr ""
+  
+! #: builtins.c:1144
+  msgid "until a break command is executed."
+  msgstr ""
+  
+! #: builtins.c:1150
+  msgid "Execute PIPELINE and print a summary of the real time, user CPU time,"
+  msgstr ""
+  
+! #: builtins.c:1151
+  msgid "and system CPU time spent executing PIPELINE when it terminates."
+  msgstr ""
+  
+! #: builtins.c:1152
+  msgid "The return status is the return status of PIPELINE.  The `-p' option"
+  msgstr ""
+  
+! #: builtins.c:1153
+  msgid "prints the timing summary in a slightly different format.  This uses"
+  msgstr ""
+  
+! #: builtins.c:1154
+  msgid "the value of the TIMEFORMAT variable as the output format."
+  msgstr ""
+  
+! #: builtins.c:1160
+  msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
+  msgstr ""
+  
+! #: builtins.c:1161
+  msgid "`|' is used to separate multiple patterns."
+  msgstr ""
+  
+! #: builtins.c:1167
+  msgid ""
+  "The if COMMANDS are executed.  If the exit status is zero, then the then"
+  msgstr ""
+  
+! #: builtins.c:1168
+  msgid ""
+  "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+  msgstr ""
+  
+! #: builtins.c:1169
+  msgid ""
+  "in turn, and if the exit status is zero, the corresponding then COMMANDS"
+  msgstr ""
+  
+! #: builtins.c:1170
+  msgid ""
+  "are executed and the if command completes.  Otherwise, the else COMMANDS"
+  msgstr ""
+  
+! #: builtins.c:1171
+  msgid ""
+  "are executed, if present.  The exit status is the exit status of the last"
+  msgstr ""
+  
+! #: builtins.c:1172
+  msgid "command executed, or zero if no condition tested true."
+  msgstr ""
+  
+! #: builtins.c:1178 builtins.c:1185
+  msgid "Expand and execute COMMANDS as long as the final command in the"
+  msgstr ""
+  
+! #: builtins.c:1179
+  msgid "`while' COMMANDS has an exit status of zero."
+  msgstr ""
+  
+! #: builtins.c:1186
+  msgid "`until' COMMANDS has an exit status which is not zero."
+  msgstr ""
+  
+! #: builtins.c:1192
+  msgid "Create a simple command invoked by NAME which runs COMMANDS."
+  msgstr ""
+  
+! #: builtins.c:1193
+  msgid "Arguments on the command line along with NAME are passed to the"
+  msgstr ""
+  
+! #: builtins.c:1194
+  msgid "function as $0 .. $n."
+  msgstr ""
+  
+! #: builtins.c:1200
+  msgid "Run a set of commands in a group.  This is one way to redirect an"
+  msgstr ""
+  
+! #: builtins.c:1201
+  msgid "entire set of commands."
+  msgstr ""
+  
+- #: builtins.c:1207
+- msgid "This is similar to the `fg' command.  Resume a stopped or background"
+- msgstr ""
+- 
+  #: builtins.c:1208
+! msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
+  msgstr ""
+  
+  #: builtins.c:1209
+! msgid "WORD, then the job whose name begins with WORD is used.  Following the"
+  msgstr ""
+  
+  #: builtins.c:1210
+! msgid "job specification with a `&' places the job in the background."
+  msgstr ""
+  
+--- 3267,3735 ----
+  
+  #: builtins.c:1000
+! msgid "signal(s) SIGNAL_SPEC.  If ARG is absent (and a single SIGNAL_SPEC"
+  msgstr ""
+  
+  #: builtins.c:1001
+! msgid "is supplied) or `-', each specified signal is reset to its original"
+  msgstr ""
+  
+  #: builtins.c:1002
+! msgid "value.  If ARG is the null string each SIGNAL_SPEC is ignored by the"
+  msgstr ""
+  
+  #: builtins.c:1003
+! msgid "shell and by the commands it invokes.  If a SIGNAL_SPEC is EXIT (0)"
+  msgstr ""
+  
+  #: builtins.c:1004
+! msgid "the command ARG is executed on exit from the shell.  If a SIGNAL_SPEC"
+  msgstr ""
+  
+  #: builtins.c:1005
+! msgid ""
+! "is DEBUG, ARG is executed after every simple command.  If the`-p' option"
+  msgstr ""
+  
+  #: builtins.c:1006
+! msgid "is supplied then the trap commands associated with each SIGNAL_SPEC are"
+  msgstr ""
+  
+  #: builtins.c:1007
+! msgid "displayed.  If no arguments are supplied or if only `-p' is given, trap"
+  msgstr ""
+  
+  #: builtins.c:1008
+  msgid ""
+! "prints the list of commands associated with each signal.  Each SIGNAL_SPEC"
+  msgstr ""
+  
+  #: builtins.c:1009
+! msgid "is either a signal name in <signal.h> or a signal number.  Signal names"
+  msgstr ""
+  
+  #: builtins.c:1010
+! msgid "are case insensitive and the SIG prefix is optional.  `trap -l' prints"
+  msgstr ""
+  
+  #: builtins.c:1011
+! msgid "a list of signal names and their corresponding numbers.  Note that a"
+  msgstr ""
+  
+! #: builtins.c:1012
+! msgid "signal can be sent to the shell with \"kill -signal $$\"."
+  msgstr ""
+  
+  #: builtins.c:1018
++ msgid "For each NAME, indicate how it would be interpreted if used as a"
++ msgstr ""
++ 
++ #: builtins.c:1019
+  msgid "command name."
+  msgstr ""
+  
+! #: builtins.c:1021
+  msgid "If the -t option is used, `type' outputs a single word which is one of"
+  msgstr ""
+  
+! #: builtins.c:1022
+  msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+  msgstr ""
+  
+! #: builtins.c:1023
+  msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
+  msgstr ""
+  
+! #: builtins.c:1024
+  msgid "or unfound, respectively."
+  msgstr ""
+  
+! #: builtins.c:1026
+  msgid "If the -p flag is used, `type' either returns the name of the disk"
+  msgstr ""
+  
+! #: builtins.c:1027
+  msgid "file that would be executed, or nothing if `type -t NAME' would not"
+  msgstr ""
+  
+! #: builtins.c:1028
+  msgid "return `file'."
+  msgstr ""
+  
+! #: builtins.c:1030
+  msgid "If the -a flag is used, `type' displays all of the places that contain"
+  msgstr ""
+  
+! #: builtins.c:1031
+  msgid "an executable named `file'.  This includes aliases, builtins, and"
+  msgstr ""
+  
+! #: builtins.c:1032
+  msgid "functions, if and only if the -p flag is not also used."
+  msgstr ""
+  
+! #: builtins.c:1034
+  msgid "The -f flag suppresses shell function lookup."
+  msgstr ""
+  
+! #: builtins.c:1036
+  msgid "The -P flag forces a PATH search for each NAME, even if it is an alias,"
+  msgstr ""
+  
+! #: builtins.c:1037
+  msgid "builtin, or function, and returns the name of the disk file that would"
+  msgstr ""
+  
+! #: builtins.c:1038
+  msgid "be executed."
+  msgstr ""
+  
+! #: builtins.c:1045
+  msgid "Ulimit provides control over the resources available to processes"
+  msgstr ""
+  
+! #: builtins.c:1046
+  msgid "started by the shell, on systems that allow such control.  If an"
+  msgstr ""
+  
+! #: builtins.c:1047
+  msgid "option is given, it is interpreted as follows:"
+  msgstr ""
+  
+! #: builtins.c:1049
+  msgid "    -S\tuse the `soft' resource limit"
+  msgstr ""
+  
+! #: builtins.c:1050
+  msgid "    -H\tuse the `hard' resource limit"
+  msgstr ""
+  
+! #: builtins.c:1051
+  msgid "    -a\tall current limits are reported"
+  msgstr ""
+  
+! #: builtins.c:1052
+  msgid "    -c\tthe maximum size of core files created"
+  msgstr ""
+  
+! #: builtins.c:1053
+  msgid "    -d\tthe maximum size of a process's data segment"
+  msgstr ""
+  
+! #: builtins.c:1054
+  msgid "    -f\tthe maximum size of files created by the shell"
+  msgstr ""
+  
+! #: builtins.c:1055
+  msgid "    -l\tthe maximum size a process may lock into memory"
+  msgstr ""
+  
+! #: builtins.c:1056
+  msgid "    -m\tthe maximum resident set size"
+  msgstr ""
+  
+! #: builtins.c:1057
+  msgid "    -n\tthe maximum number of open file descriptors"
+  msgstr ""
+  
+! #: builtins.c:1058
+  msgid "    -p\tthe pipe buffer size"
+  msgstr ""
+  
+! #: builtins.c:1059
+  msgid "    -s\tthe maximum stack size"
+  msgstr ""
+  
+! #: builtins.c:1060
+  msgid "    -t\tthe maximum amount of cpu time in seconds"
+  msgstr ""
+  
+! #: builtins.c:1061
+  msgid "    -u\tthe maximum number of user processes"
+  msgstr ""
+  
+! #: builtins.c:1062
+  msgid "    -v\tthe size of virtual memory"
+  msgstr ""
+  
+! #: builtins.c:1064
+  msgid "If LIMIT is given, it is the new value of the specified resource;"
+  msgstr ""
+  
+! #: builtins.c:1065
+  msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for"
+  msgstr ""
+  
+! #: builtins.c:1066
+  msgid ""
+  "the current soft limit, the current hard limit, and no limit, respectively."
+  msgstr ""
+  
+! #: builtins.c:1067
+  msgid "Otherwise, the current value of the specified resource is printed."
+  msgstr ""
+  
+! #: builtins.c:1068
+  msgid "If no option is given, then -f is assumed.  Values are in 1024-byte"
+  msgstr ""
+  
+! #: builtins.c:1069
+  msgid "increments, except for -t, which is in seconds, -p, which is in"
+  msgstr ""
+  
+! #: builtins.c:1070
+  msgid "increments of 512 bytes, and -u, which is an unscaled number of"
+  msgstr ""
+  
+! #: builtins.c:1071
+  msgid "processes."
+  msgstr ""
+  
+! #: builtins.c:1078
+  msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+  msgstr ""
+  
+! #: builtins.c:1079
+  msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+  msgstr ""
+  
+! #: builtins.c:1080
+  msgid "option makes the output symbolic; otherwise an octal number is output."
+  msgstr ""
+  
+! #: builtins.c:1081
+  msgid "If `-p' is supplied, and MODE is omitted, the output is in a form"
+  msgstr ""
+  
+! #: builtins.c:1082
+  msgid "that may be used as input.  If MODE begins with a digit, it is"
+  msgstr ""
+  
+! #: builtins.c:1083
+  msgid "interpreted as an octal number, otherwise it is a symbolic mode string"
+  msgstr ""
+  
+! #: builtins.c:1084
+  msgid "like that accepted by chmod(1)."
+  msgstr ""
+  
+! #: builtins.c:1091 builtins.c:1103
+  msgid "Wait for the specified process and report its termination status.  If"
+  msgstr ""
+  
+! #: builtins.c:1092 builtins.c:1104
+  msgid "N is not given, all currently active child processes are waited for,"
+  msgstr ""
+  
+! #: builtins.c:1093
+  msgid "and the return code is zero.  N may be a process ID or a job"
+  msgstr ""
+  
+! #: builtins.c:1094
+  msgid "specification; if a job spec is given, all processes in the job's"
+  msgstr ""
+  
+! #: builtins.c:1095
+  msgid "pipeline are waited for."
+  msgstr ""
+  
+! #: builtins.c:1105
+  msgid "and the return code is zero.  N is a process ID; if it is not given,"
+  msgstr ""
+  
+! #: builtins.c:1106
+  msgid "all child processes of the shell are waited for."
+  msgstr ""
+  
+! #: builtins.c:1113
+  msgid "The `for' loop executes a sequence of commands for each member in a"
+  msgstr ""
+  
+! #: builtins.c:1114
+  msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+  msgstr ""
+  
+! #: builtins.c:1115
+  msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
+  msgstr ""
+  
+! #: builtins.c:1116
+  msgid "the COMMANDS are executed."
+  msgstr ""
+  
+! #: builtins.c:1122
+  msgid "Equivalent to"
+  msgstr ""
+  
+! #: builtins.c:1123
+  msgid "\t(( EXP1 ))"
+  msgstr ""
+  
+! #: builtins.c:1124
+  msgid "\twhile (( EXP2 )); do"
+  msgstr ""
+  
+! #: builtins.c:1125
+  msgid "\t\tCOMMANDS"
+  msgstr ""
+  
+! #: builtins.c:1126
+  msgid "\t\t(( EXP3 ))"
+  msgstr ""
+  
+! #: builtins.c:1127
+  msgid "\tdone"
+  msgstr ""
+  
+! #: builtins.c:1128
+  msgid "EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is"
+  msgstr ""
+  
+! #: builtins.c:1129
+  msgid "omitted, it behaves as if it evaluates to 1."
+  msgstr ""
+  
+! #: builtins.c:1135
+  msgid "The WORDS are expanded, generating a list of words.  The"
+  msgstr ""
+  
+! #: builtins.c:1136
+  msgid "set of expanded words is printed on the standard error, each"
+  msgstr ""
+  
+! #: builtins.c:1137
+  msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
+  msgstr ""
+  
+! #: builtins.c:1138
+  msgid "is assumed.  The PS3 prompt is then displayed and a line read"
+  msgstr ""
+  
+! #: builtins.c:1139
+  msgid "from the standard input.  If the line consists of the number"
+  msgstr ""
+  
+! #: builtins.c:1140
+  msgid "corresponding to one of the displayed words, then NAME is set"
+  msgstr ""
+  
+! #: builtins.c:1141
+  msgid "to that word.  If the line is empty, WORDS and the prompt are"
+  msgstr ""
+  
+! #: builtins.c:1142
+  msgid "redisplayed.  If EOF is read, the command completes.  Any other"
+  msgstr ""
+  
+! #: builtins.c:1143
+  msgid "value read causes NAME to be set to null.  The line read is saved"
+  msgstr ""
+  
+! #: builtins.c:1144
+  msgid "in the variable REPLY.  COMMANDS are executed after each selection"
+  msgstr ""
+  
+! #: builtins.c:1145
+  msgid "until a break command is executed."
+  msgstr ""
+  
+! #: builtins.c:1151
+  msgid "Execute PIPELINE and print a summary of the real time, user CPU time,"
+  msgstr ""
+  
+! #: builtins.c:1152
+  msgid "and system CPU time spent executing PIPELINE when it terminates."
+  msgstr ""
+  
+! #: builtins.c:1153
+  msgid "The return status is the return status of PIPELINE.  The `-p' option"
+  msgstr ""
+  
+! #: builtins.c:1154
+  msgid "prints the timing summary in a slightly different format.  This uses"
+  msgstr ""
+  
+! #: builtins.c:1155
+  msgid "the value of the TIMEFORMAT variable as the output format."
+  msgstr ""
+  
+! #: builtins.c:1161
+  msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
+  msgstr ""
+  
+! #: builtins.c:1162
+  msgid "`|' is used to separate multiple patterns."
+  msgstr ""
+  
+! #: builtins.c:1168
+  msgid ""
+  "The if COMMANDS are executed.  If the exit status is zero, then the then"
+  msgstr ""
+  
+! #: builtins.c:1169
+  msgid ""
+  "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+  msgstr ""
+  
+! #: builtins.c:1170
+  msgid ""
+  "in turn, and if the exit status is zero, the corresponding then COMMANDS"
+  msgstr ""
+  
+! #: builtins.c:1171
+  msgid ""
+  "are executed and the if command completes.  Otherwise, the else COMMANDS"
+  msgstr ""
+  
+! #: builtins.c:1172
+  msgid ""
+  "are executed, if present.  The exit status is the exit status of the last"
+  msgstr ""
+  
+! #: builtins.c:1173
+  msgid "command executed, or zero if no condition tested true."
+  msgstr ""
+  
+! #: builtins.c:1179 builtins.c:1186
+  msgid "Expand and execute COMMANDS as long as the final command in the"
+  msgstr ""
+  
+! #: builtins.c:1180
+  msgid "`while' COMMANDS has an exit status of zero."
+  msgstr ""
+  
+! #: builtins.c:1187
+  msgid "`until' COMMANDS has an exit status which is not zero."
+  msgstr ""
+  
+! #: builtins.c:1193
+  msgid "Create a simple command invoked by NAME which runs COMMANDS."
+  msgstr ""
+  
+! #: builtins.c:1194
+  msgid "Arguments on the command line along with NAME are passed to the"
+  msgstr ""
+  
+! #: builtins.c:1195
+  msgid "function as $0 .. $n."
+  msgstr ""
+  
+! #: builtins.c:1201
+  msgid "Run a set of commands in a group.  This is one way to redirect an"
+  msgstr ""
+  
+! #: builtins.c:1202
+  msgid "entire set of commands."
+  msgstr ""
+  
+  #: builtins.c:1208
+! msgid "This is similar to the `fg' command.  Resume a stopped or background"
+  msgstr ""
+  
+  #: builtins.c:1209
+! msgid "job specified by %JOBSPEC.  Following the job specification with a `&'"
+  msgstr ""
+  
+  #: builtins.c:1210
+! msgid "places the job in the background."
+  msgstr ""
+  
+***************
+*** 3799,4174 ****
+  
+  #: builtins.c:1242
+! msgid "CDPATH          A colon separated list of directories to search"
+  msgstr ""
+  
+  #: builtins.c:1243
+! msgid "\t\twhen the argument to `cd' is not found in the current"
+  msgstr ""
+  
+  #: builtins.c:1244
+- msgid "\t\tdirectory."
+- msgstr ""
+- 
+- #: builtins.c:1245
+  msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
+  msgstr ""
+  
+! #: builtins.c:1246
+  msgid "\t\tbe ignored by pathname expansion."
+  msgstr ""
+  
+! #: builtins.c:1248
+  msgid ""
+  "HISTFILE        The name of the file where your command history is stored."
+  msgstr ""
+  
+! #: builtins.c:1249
+  msgid "HISTFILESIZE    The maximum number of lines this file can contain."
+  msgstr ""
+  
+! #: builtins.c:1250
+  msgid "HISTSIZE        The maximum number of history lines that a running"
+  msgstr ""
+  
+! #: builtins.c:1251
+  msgid "\t\tshell can access."
+  msgstr ""
+  
+! #: builtins.c:1253
+  msgid "HOME            The complete pathname to your login directory."
+  msgstr ""
+  
+! #: builtins.c:1254
+  msgid "HOSTNAME\tThe name of the current host."
+  msgstr ""
+  
+! #: builtins.c:1255
+  msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
+  msgstr ""
+  
+! #: builtins.c:1256
+  msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+  msgstr ""
+  
+! #: builtins.c:1257
+  msgid "\t\tcharacter as the sole input.  If set, then the value"
+  msgstr ""
+  
+! #: builtins.c:1258
+  msgid "\t\tof it is the number of EOF characters that can be seen"
+  msgstr ""
+  
+! #: builtins.c:1259
+  msgid "\t\tin a row on an empty line before the shell will exit"
+  msgstr ""
+  
+! #: builtins.c:1260
+  msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
+  msgstr ""
+  
+! #: builtins.c:1261
+  msgid "MACHTYPE\tA string describing the current system Bash is running on."
+  msgstr ""
+  
+! #: builtins.c:1262
+  msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
+  msgstr ""
+  
+! #: builtins.c:1263
+  msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
+  msgstr ""
+  
+! #: builtins.c:1264
+  msgid "\t\tfor new mail."
+  msgstr ""
+  
+! #: builtins.c:1265
+  msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
+  msgstr ""
+  
+! #: builtins.c:1266
+  msgid "PATH            A colon-separated list of directories to search when"
+  msgstr ""
+  
+! #: builtins.c:1267
+  msgid "\t\tlooking for commands."
+  msgstr ""
+  
+! #: builtins.c:1268
+  msgid "PROMPT_COMMAND  A command to be executed before the printing of each"
+  msgstr ""
+  
+! #: builtins.c:1269
+  msgid "\t\tprimary prompt."
+  msgstr ""
+  
+! #: builtins.c:1270
+  msgid "PS1             The primary prompt string."
+  msgstr ""
+  
+! #: builtins.c:1271
+  msgid "PS2             The secondary prompt string."
+  msgstr ""
+  
+! #: builtins.c:1272
+  msgid "PWD\t\tThe full pathname of the current directory."
+  msgstr ""
+  
+! #: builtins.c:1273
+  msgid "SHELLOPTS\tA colon-separated list of enabled shell options."
+  msgstr ""
+  
+! #: builtins.c:1274
+  msgid "TERM            The name of the current terminal type."
+  msgstr ""
+  
+! #: builtins.c:1275
+  msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the"
+  msgstr ""
+  
+! #: builtins.c:1276
+  msgid "\t\t`time' reserved word."
+  msgstr ""
+  
+! #: builtins.c:1277
+  msgid "auto_resume     Non-null means a command word appearing on a line by"
+  msgstr ""
+  
+! #: builtins.c:1278
+  msgid "\t\titself is first looked for in the list of currently"
+  msgstr ""
+  
+! #: builtins.c:1279
+  msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
+  msgstr ""
+  
+! #: builtins.c:1280
+  msgid "\t\tA value of `exact' means that the command word must"
+  msgstr ""
+  
+! #: builtins.c:1281
+  msgid "\t\texactly match a command in the list of stopped jobs.  A"
+  msgstr ""
+  
+! #: builtins.c:1282
+  msgid "\t\tvalue of `substring' means that the command word must"
+  msgstr ""
+  
+! #: builtins.c:1283
+  msgid "\t\tmatch a substring of the job.  Any other value means that"
+  msgstr ""
+  
+! #: builtins.c:1284
+  msgid "\t\tthe command must be a prefix of a stopped job."
+  msgstr ""
+  
+! #: builtins.c:1287
+  msgid "histchars       Characters controlling history expansion and quick"
+  msgstr ""
+  
+! #: builtins.c:1288
+  msgid "\t\tsubstitution.  The first character is the history"
+  msgstr ""
+  
+! #: builtins.c:1289
+  msgid "\t\tsubstitution character, usually `!'.  The second is"
+  msgstr ""
+  
+! #: builtins.c:1290
+  msgid "\t\tthe `quick substitution' character, usually `^'.  The"
+  msgstr ""
+  
+! #: builtins.c:1291
+  msgid "\t\tthird is the `history comment' character, usually `#'."
+  msgstr ""
+  
+! #: builtins.c:1293
+  msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which"
+  msgstr ""
+  
+! #: builtins.c:1294
+  msgid "\t\tcommands should be saved on the history list."
+  msgstr ""
+  
+! #: builtins.c:1306
+  msgid "+N\tRotates the stack so that the Nth directory (counting"
+  msgstr ""
+  
+! #: builtins.c:1307
+  msgid "\tfrom the left of the list shown by `dirs', starting with"
+  msgstr ""
+  
+! #: builtins.c:1308 builtins.c:1312
+  msgid "\tzero) is at the top."
+  msgstr ""
+  
+! #: builtins.c:1310
+  msgid "-N\tRotates the stack so that the Nth directory (counting"
+  msgstr ""
+  
+! #: builtins.c:1311
+  msgid "\tfrom the right of the list shown by `dirs', starting with"
+  msgstr ""
+  
+! #: builtins.c:1314
+  msgid "-n\tsuppress the normal change of directory when adding directories"
+  msgstr ""
+  
+! #: builtins.c:1315
+  msgid "\tto the stack, so only the stack is manipulated."
+  msgstr ""
+  
+! #: builtins.c:1317
+  msgid "dir\tadds DIR to the directory stack at the top, making it the"
+  msgstr ""
+  
+! #: builtins.c:1318
+  msgid "\tnew current working directory."
+  msgstr ""
+  
+! #: builtins.c:1332
+  msgid "+N\tremoves the Nth entry counting from the left of the list"
+  msgstr ""
+  
+! #: builtins.c:1333
+  msgid "\tshown by `dirs', starting with zero.  For example: `popd +0'"
+  msgstr ""
+  
+! #: builtins.c:1334
+  msgid "\tremoves the first directory, `popd +1' the second."
+  msgstr ""
+  
+! #: builtins.c:1336
+  msgid "-N\tremoves the Nth entry counting from the right of the list"
+  msgstr ""
+  
+! #: builtins.c:1337
+  msgid "\tshown by `dirs', starting with zero.  For example: `popd -0'"
+  msgstr ""
+  
+! #: builtins.c:1338
+  msgid "\tremoves the last directory, `popd -1' the next to last."
+  msgstr ""
+  
+! #: builtins.c:1340
+  msgid "-n\tsuppress the normal change of directory when removing directories"
+  msgstr ""
+  
+! #: builtins.c:1341
+  msgid "\tfrom the stack, so only the stack is manipulated."
+  msgstr ""
+  
+! #: builtins.c:1363
+  msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
+  msgstr ""
+  
+! #: builtins.c:1364 builtins.c:1367
+  msgid "\tdirs when invoked without options, starting with zero."
+  msgstr ""
+  
+! #: builtins.c:1366
+  msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
+  msgstr ""
+  
+! #: builtins.c:1374
+  msgid "Toggle the values of variables controlling optional behavior."
+  msgstr ""
+  
+! #: builtins.c:1375
+  msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
+  msgstr ""
+  
+! #: builtins.c:1376
+  msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
+  msgstr ""
+  
+! #: builtins.c:1377
+  msgid "status indicates whether each OPTNAME is set or unset.  The -o"
+  msgstr ""
+  
+! #: builtins.c:1378
+  msgid "option restricts the OPTNAMEs to those defined for use with"
+  msgstr ""
+  
+! #: builtins.c:1379
+  msgid "`set -o'.  With no options, or with the -p option, a list of all"
+  msgstr ""
+  
+! #: builtins.c:1380
+  msgid "settable options is displayed, with an indication of whether or"
+  msgstr ""
+  
+! #: builtins.c:1381
+  msgid "not each is set."
+  msgstr ""
+  
+! #: builtins.c:1387
+  msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
+  msgstr ""
+  
+! #: builtins.c:1388
+  msgid "is a character string which contains three types of objects: plain"
+  msgstr ""
+  
+! #: builtins.c:1389
+  msgid ""
+  "characters, which are simply copied to standard output, character escape"
+  msgstr ""
+  
+! #: builtins.c:1390
+  msgid "sequences which are converted and copied to the standard output, and"
+  msgstr ""
+  
+! #: builtins.c:1391
+  msgid ""
+  "format specifications, each of which causes printing of the next successive"
+  msgstr ""
+  
+! #: builtins.c:1392
+  msgid "argument.  In addition to the standard printf(1) formats, %b means to"
+  msgstr ""
+  
+! #: builtins.c:1393
+  msgid "expand backslash escape sequences in the corresponding argument, and %q"
+  msgstr ""
+  
+! #: builtins.c:1394
+  msgid "means to quote the argument in a way that can be reused as shell input."
+  msgstr ""
+  
+! #: builtins.c:1401
+  msgid "For each NAME, specify how arguments are to be completed."
+  msgstr ""
+  
+! #: builtins.c:1402
+  msgid "If the -p option is supplied, or if no options are supplied, existing"
+  msgstr ""
+  
+! #: builtins.c:1403
+  msgid "completion specifications are printed in a way that allows them to be"
+  msgstr ""
+  
+! #: builtins.c:1404
+  msgid "reused as input.  The -r option removes a completion specification for"
+  msgstr ""
+  
+! #: builtins.c:1405
+  msgid "each NAME, or, if no NAMEs are supplied, all completion specifications."
+  msgstr ""
+  
+! #: builtins.c:1413
+  msgid "Display the possible completions depending on the options.  Intended"
+  msgstr ""
+  
+! #: builtins.c:1414
+  msgid ""
+  "to be used from within a shell function generating possible completions."
+  msgstr ""
+  
+! #: builtins.c:1415
+  msgid "If the optional WORD argument is supplied, matches against WORD are"
+  msgstr ""
+  
+! #: builtins.c:1416
+  msgid "generated."
+  msgstr ""
+--- 3795,4166 ----
+  
+  #: builtins.c:1242
+! msgid "CDPATH          A colon-separated list of directories to search"
+  msgstr ""
+  
+  #: builtins.c:1243
+! msgid "\t\tfor directries given as arguments to `cd'."
+  msgstr ""
+  
+  #: builtins.c:1244
+  msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to"
+  msgstr ""
+  
+! #: builtins.c:1245
+  msgid "\t\tbe ignored by pathname expansion."
+  msgstr ""
+  
+! #: builtins.c:1247
+  msgid ""
+  "HISTFILE        The name of the file where your command history is stored."
+  msgstr ""
+  
+! #: builtins.c:1248
+  msgid "HISTFILESIZE    The maximum number of lines this file can contain."
+  msgstr ""
+  
+! #: builtins.c:1249
+  msgid "HISTSIZE        The maximum number of history lines that a running"
+  msgstr ""
+  
+! #: builtins.c:1250
+  msgid "\t\tshell can access."
+  msgstr ""
+  
+! #: builtins.c:1252
+  msgid "HOME            The complete pathname to your login directory."
+  msgstr ""
+  
+! #: builtins.c:1253
+  msgid "HOSTNAME\tThe name of the current host."
+  msgstr ""
+  
+! #: builtins.c:1254
+  msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
+  msgstr ""
+  
+! #: builtins.c:1255
+  msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+  msgstr ""
+  
+! #: builtins.c:1256
+  msgid "\t\tcharacter as the sole input.  If set, then the value"
+  msgstr ""
+  
+! #: builtins.c:1257
+  msgid "\t\tof it is the number of EOF characters that can be seen"
+  msgstr ""
+  
+! #: builtins.c:1258
+  msgid "\t\tin a row on an empty line before the shell will exit"
+  msgstr ""
+  
+! #: builtins.c:1259
+  msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
+  msgstr ""
+  
+! #: builtins.c:1260
+  msgid "MACHTYPE\tA string describing the current system Bash is running on."
+  msgstr ""
+  
+! #: builtins.c:1261
+  msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
+  msgstr ""
+  
+! #: builtins.c:1262
+  msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
+  msgstr ""
+  
+! #: builtins.c:1263
+  msgid "\t\tfor new mail."
+  msgstr ""
+  
+! #: builtins.c:1264
+  msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
+  msgstr ""
+  
+! #: builtins.c:1265
+  msgid "PATH            A colon-separated list of directories to search when"
+  msgstr ""
+  
+! #: builtins.c:1266
+  msgid "\t\tlooking for commands."
+  msgstr ""
+  
+! #: builtins.c:1267
+  msgid "PROMPT_COMMAND  A command to be executed before the printing of each"
+  msgstr ""
+  
+! #: builtins.c:1268
+  msgid "\t\tprimary prompt."
+  msgstr ""
+  
+! #: builtins.c:1269
+  msgid "PS1             The primary prompt string."
+  msgstr ""
+  
+! #: builtins.c:1270
+  msgid "PS2             The secondary prompt string."
+  msgstr ""
+  
+! #: builtins.c:1271
+  msgid "PWD\t\tThe full pathname of the current directory."
+  msgstr ""
+  
+! #: builtins.c:1272
+  msgid "SHELLOPTS\tA colon-separated list of enabled shell options."
+  msgstr ""
+  
+! #: builtins.c:1273
+  msgid "TERM            The name of the current terminal type."
+  msgstr ""
+  
+! #: builtins.c:1274
+  msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the"
+  msgstr ""
+  
+! #: builtins.c:1275
+  msgid "\t\t`time' reserved word."
+  msgstr ""
+  
+! #: builtins.c:1276
+  msgid "auto_resume     Non-null means a command word appearing on a line by"
+  msgstr ""
+  
+! #: builtins.c:1277
+  msgid "\t\titself is first looked for in the list of currently"
+  msgstr ""
+  
+! #: builtins.c:1278
+  msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
+  msgstr ""
+  
+! #: builtins.c:1279
+  msgid "\t\tA value of `exact' means that the command word must"
+  msgstr ""
+  
+! #: builtins.c:1280
+  msgid "\t\texactly match a command in the list of stopped jobs.  A"
+  msgstr ""
+  
+! #: builtins.c:1281
+  msgid "\t\tvalue of `substring' means that the command word must"
+  msgstr ""
+  
+! #: builtins.c:1282
+  msgid "\t\tmatch a substring of the job.  Any other value means that"
+  msgstr ""
+  
+! #: builtins.c:1283
+  msgid "\t\tthe command must be a prefix of a stopped job."
+  msgstr ""
+  
+! #: builtins.c:1286
+  msgid "histchars       Characters controlling history expansion and quick"
+  msgstr ""
+  
+! #: builtins.c:1287
+  msgid "\t\tsubstitution.  The first character is the history"
+  msgstr ""
+  
+! #: builtins.c:1288
+  msgid "\t\tsubstitution character, usually `!'.  The second is"
+  msgstr ""
+  
+! #: builtins.c:1289
+  msgid "\t\tthe `quick substitution' character, usually `^'.  The"
+  msgstr ""
+  
+! #: builtins.c:1290
+  msgid "\t\tthird is the `history comment' character, usually `#'."
+  msgstr ""
+  
+! #: builtins.c:1292
+  msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which"
+  msgstr ""
+  
+! #: builtins.c:1293
+  msgid "\t\tcommands should be saved on the history list."
+  msgstr ""
+  
+! #: builtins.c:1305
+  msgid "+N\tRotates the stack so that the Nth directory (counting"
+  msgstr ""
+  
+! #: builtins.c:1306
+  msgid "\tfrom the left of the list shown by `dirs', starting with"
+  msgstr ""
+  
+! #: builtins.c:1307 builtins.c:1311
+  msgid "\tzero) is at the top."
+  msgstr ""
+  
+! #: builtins.c:1309
+  msgid "-N\tRotates the stack so that the Nth directory (counting"
+  msgstr ""
+  
+! #: builtins.c:1310
+  msgid "\tfrom the right of the list shown by `dirs', starting with"
+  msgstr ""
+  
+! #: builtins.c:1313
+  msgid "-n\tsuppress the normal change of directory when adding directories"
+  msgstr ""
+  
+! #: builtins.c:1314
+  msgid "\tto the stack, so only the stack is manipulated."
+  msgstr ""
+  
+! #: builtins.c:1316
+  msgid "dir\tadds DIR to the directory stack at the top, making it the"
+  msgstr ""
+  
+! #: builtins.c:1317
+  msgid "\tnew current working directory."
+  msgstr ""
+  
+! #: builtins.c:1331
+  msgid "+N\tremoves the Nth entry counting from the left of the list"
+  msgstr ""
+  
+! #: builtins.c:1332
+  msgid "\tshown by `dirs', starting with zero.  For example: `popd +0'"
+  msgstr ""
+  
+! #: builtins.c:1333
+  msgid "\tremoves the first directory, `popd +1' the second."
+  msgstr ""
+  
+! #: builtins.c:1335
+  msgid "-N\tremoves the Nth entry counting from the right of the list"
+  msgstr ""
+  
+! #: builtins.c:1336
+  msgid "\tshown by `dirs', starting with zero.  For example: `popd -0'"
+  msgstr ""
+  
+! #: builtins.c:1337
+  msgid "\tremoves the last directory, `popd -1' the next to last."
+  msgstr ""
+  
+! #: builtins.c:1339
+  msgid "-n\tsuppress the normal change of directory when removing directories"
+  msgstr ""
+  
+! #: builtins.c:1340
+  msgid "\tfrom the stack, so only the stack is manipulated."
+  msgstr ""
+  
+! #: builtins.c:1362
+  msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
+  msgstr ""
+  
+! #: builtins.c:1363 builtins.c:1366
+  msgid "\tdirs when invoked without options, starting with zero."
+  msgstr ""
+  
+! #: builtins.c:1365
+  msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
+  msgstr ""
+  
+! #: builtins.c:1373
+  msgid "Toggle the values of variables controlling optional behavior."
+  msgstr ""
+  
+! #: builtins.c:1374
+  msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
+  msgstr ""
+  
+! #: builtins.c:1375
+  msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
+  msgstr ""
+  
+! #: builtins.c:1376
+  msgid "status indicates whether each OPTNAME is set or unset.  The -o"
+  msgstr ""
+  
+! #: builtins.c:1377
+  msgid "option restricts the OPTNAMEs to those defined for use with"
+  msgstr ""
+  
+! #: builtins.c:1378
+  msgid "`set -o'.  With no options, or with the -p option, a list of all"
+  msgstr ""
+  
+! #: builtins.c:1379
+  msgid "settable options is displayed, with an indication of whether or"
+  msgstr ""
+  
+! #: builtins.c:1380
+  msgid "not each is set."
+  msgstr ""
+  
+! #: builtins.c:1386
+  msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT"
+  msgstr ""
+  
+! #: builtins.c:1387
+  msgid "is a character string which contains three types of objects: plain"
+  msgstr ""
+  
+! #: builtins.c:1388
+  msgid ""
+  "characters, which are simply copied to standard output, character escape"
+  msgstr ""
+  
+! #: builtins.c:1389
+  msgid "sequences which are converted and copied to the standard output, and"
+  msgstr ""
+  
+! #: builtins.c:1390
+  msgid ""
+  "format specifications, each of which causes printing of the next successive"
+  msgstr ""
+  
+! #: builtins.c:1391
+  msgid "argument.  In addition to the standard printf(1) formats, %b means to"
+  msgstr ""
+  
+! #: builtins.c:1392
+  msgid "expand backslash escape sequences in the corresponding argument, and %q"
+  msgstr ""
+  
+! #: builtins.c:1393
+  msgid "means to quote the argument in a way that can be reused as shell input."
+  msgstr ""
+  
+! #: builtins.c:1400
+  msgid "For each NAME, specify how arguments are to be completed."
+  msgstr ""
+  
+! #: builtins.c:1401
+  msgid "If the -p option is supplied, or if no options are supplied, existing"
+  msgstr ""
+  
+! #: builtins.c:1402
+  msgid "completion specifications are printed in a way that allows them to be"
+  msgstr ""
+  
+! #: builtins.c:1403
+  msgid "reused as input.  The -r option removes a completion specification for"
+  msgstr ""
+  
+! #: builtins.c:1404
+  msgid "each NAME, or, if no NAMEs are supplied, all completion specifications."
+  msgstr ""
+  
+! #: builtins.c:1412
+  msgid "Display the possible completions depending on the options.  Intended"
+  msgstr ""
+  
+! #: builtins.c:1413
+  msgid ""
+  "to be used from within a shell function generating possible completions."
+  msgstr ""
+  
+! #: builtins.c:1414
+  msgid "If the optional WORD argument is supplied, matches against WORD are"
+  msgstr ""
+  
+! #: builtins.c:1415
+  msgid "generated."
+  msgstr ""
diff --git a/subst.c b/subst.c
index 0e3d7326ae22288cf758829df10efe10d7bf06f3..d69a6684d979c880d791d26462b2f7ade903ca92 100644 (file)
--- a/subst.c
+++ b/subst.c
@@ -4899,8 +4899,9 @@ verify_substring_values (value, substr, vtype, e1p, e2p)
 #if defined (ARRAY_VARS)
     case VT_ARRAYVAR:
       a = (ARRAY *)value;
-      /* For arrays, the first value deals with array indices. */
-      len = array_max_index (a);       /* arrays index from 0 to n - 1 */
+      /* For arrays, the first value deals with array indices.  Negative
+        offsets count from one past the array's maximum index. */
+      len = array_max_index (a) + (*e1p < 0);  /* arrays index from 0 to n - 1 */
       break;
 #endif
     }
index a42eb78070dbc99c1a0b01a674cd5eaaec406443..6aca944fe72fa459ec9275c4820f733a425ffe15 100644 (file)
@@ -96,11 +96,11 @@ echo "/* Version control for the shell.  This file gets changed when you say"
 echo "   \`make version.h' to the Makefile.  It is created by mkversion. */"
 
 # Output the distribution version.  Single numbers are converted to x.00.
-# Allow, as a special case, `[:digit:].[:digit:][:digit:][:alpha:]' for
-# intermediate versions (e.g., `2.05a').
+# Allow, as a special case, `[:digit:].[:digit:][:alpha:]' for
+# intermediate versions (e.g., `2.5a').
 # Any characters other than digits and `.' are invalid.
 case "$dist_version" in
-[0-9].[0-9][0-9][a-z]) ;;      # special case
+[0-9].[0-9][a-z])      ;;      # special case
 *[!0-9.]*)     echo "mkversion.sh: ${dist_version}: bad distribution version" >&2
                exit 1 ;;
 *.*)   ;;
@@ -112,9 +112,9 @@ dist_major=`echo $dist_version | sed 's:\..*$::'`
 
 dist_minor=`echo $dist_version | sed 's:^.*\.::'`
 case "$dist_minor" in
-"")    dist_minor=00 ;;
-[a-z]) dist_minor=00${dist_minor} ;;
-?)     dist_minor=0${dist_minor} ;;
+"")    dist_minor=0 ;;
+[a-z]) dist_minor=0${dist_minor} ;;
+?)     dist_minor=${dist_minor} ;;
 *)     ;;
 esac
 
diff --git a/support/mkversion.sh.save1 b/support/mkversion.sh.save1
new file mode 100644 (file)
index 0000000..a42eb78
--- /dev/null
@@ -0,0 +1,164 @@
+#! /bin/sh
+
+# Simple program to make new version numbers for the shell.
+# Big deal, but it was getting out of hand to do everything
+# in the makefile.  This creates a file named by the -o option,
+# otherwise everything is echoed to the standard output.
+
+# Copyright (C) 1996-2002 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+PROGNAME=`basename $0`
+USAGE="$PROGNAME [-b] [-S srcdir] -d version -p patchlevel [-s status] [-o outfile]"
+
+source_dir="."
+
+while [ $# -gt 0 ]; do
+       case "$1" in
+       -o)     shift; OUTFILE=$1; shift ;;
+       -b)     shift; inc_build=yes ;;
+       -s)     shift; rel_status=$1; shift ;;
+       -p)     shift; patch_level=$1; shift ;;
+       -d)     shift; dist_version=$1; shift ;;
+       -S)     shift; source_dir="$1"; shift ;;
+       *)      echo "$PROGNAME: usage: $USAGE" >&2 ; exit 2 ;;
+       esac
+done
+
+# Required arguments
+if [ -z "$dist_version" ]; then
+       echo "${PROGNAME}: required argument -d missing" >&2
+       echo "$PROGNAME: usage: $USAGE" >&2
+       exit 1
+fi
+
+#if [ -z "$patch_level" ]; then
+#      echo "${PROGNAME}: required argument -p missing" >&2
+#      echo "$PROGNAME: usage: $USAGE" >&2
+#      exit 1
+#fi
+
+# Defaults
+if [ -z "$rel_status" ]; then
+       rel_status="release"
+fi
+
+build_ver=
+if [ -r .build ]; then
+       build_ver=`cat .build`
+fi
+if [ -z "$build_ver" ]; then
+       build_ver=0
+fi
+
+# increment the build version if that's what's required
+
+if [ -n "$inc_build" ]; then
+       build_ver=`expr $build_ver + 1`
+fi
+
+# what's the patch level?
+if [ -z "$patch_level" ]; then
+       patchlevel_h=$source_dir/patchlevel.h
+       if [ -s $patchlevel_h ]; then
+               patch_level=`cat $patchlevel_h | grep '^#define[        ]*PATCHLEVEL' | awk '{print $NF}'`
+       fi
+fi
+if [ -z "$patch_level" ]; then
+       patch_level=0
+fi
+
+# If we have an output file specified, make it the standard output
+if [ -n "$OUTFILE" ]; then
+       if exec >$OUTFILE; then
+               :
+       else
+               echo "${PROGNAME}: cannot redirect standard output to $OUTFILE" >&2
+               exit 1
+       fi
+fi
+
+# Output the leading comment.
+echo "/* Version control for the shell.  This file gets changed when you say"
+echo "   \`make version.h' to the Makefile.  It is created by mkversion. */"
+
+# Output the distribution version.  Single numbers are converted to x.00.
+# Allow, as a special case, `[:digit:].[:digit:][:digit:][:alpha:]' for
+# intermediate versions (e.g., `2.05a').
+# Any characters other than digits and `.' are invalid.
+case "$dist_version" in
+[0-9].[0-9][0-9][a-z]) ;;      # special case
+*[!0-9.]*)     echo "mkversion.sh: ${dist_version}: bad distribution version" >&2
+               exit 1 ;;
+*.*)   ;;
+*)     dist_version=${dist_version}.00 ;;
+esac
+
+dist_major=`echo $dist_version | sed 's:\..*$::'`
+[ -z "${dist_major}" ] && dist_major=0
+
+dist_minor=`echo $dist_version | sed 's:^.*\.::'`
+case "$dist_minor" in
+"")    dist_minor=00 ;;
+[a-z]) dist_minor=00${dist_minor} ;;
+?)     dist_minor=0${dist_minor} ;;
+*)     ;;
+esac
+
+#float_dist=`echo $dist_version | awk '{printf "%.2f\n", $1}'`
+float_dist=${dist_major}.${dist_minor}
+
+echo
+echo "/* The distribution version number of this shell. */"
+echo "#define DISTVERSION \"${float_dist}\""
+
+# Output the patch level
+#echo
+#echo "/* The patch level of this version of the shell. */"
+#echo "#define PATCHLEVEL ${patch_level}"
+
+# Output the build version
+echo
+echo "/* The last built version of this shell. */"
+echo "#define BUILDVERSION ${build_ver}"
+
+# Output the release status
+echo
+echo "/* The release status of this shell. */"
+echo "#define RELSTATUS \"${rel_status}\""
+
+# Output the SCCS version string
+sccs_string="${float_dist}.${patch_level}(${build_ver}) ${rel_status} GNU"
+echo
+echo "/* A version string for use by sccs and the what command. */"
+echo "#define SCCSVERSION \"@(#)Bash version ${sccs_string}\""
+
+# extern function declarations
+#echo
+#echo '/* Functions from version.c. */'
+#echo 'extern char *shell_version_string __P((void));'
+#echo 'extern void show_shell_version __P((int));'
+
+if [ -n "$inc_build" ]; then
+       # Make sure we can write to .build
+       if [ -f .build ] && [ ! -w .build ]; then
+               echo "$PROGNAME: cannot write to .build, not incrementing build version" >&2
+       else
+               echo "$build_ver" > .build
+       fi
+fi
+       
+exit 0
diff --git a/support/mkversion.sh~ b/support/mkversion.sh~
new file mode 100644 (file)
index 0000000..a42eb78
--- /dev/null
@@ -0,0 +1,164 @@
+#! /bin/sh
+
+# Simple program to make new version numbers for the shell.
+# Big deal, but it was getting out of hand to do everything
+# in the makefile.  This creates a file named by the -o option,
+# otherwise everything is echoed to the standard output.
+
+# Copyright (C) 1996-2002 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+PROGNAME=`basename $0`
+USAGE="$PROGNAME [-b] [-S srcdir] -d version -p patchlevel [-s status] [-o outfile]"
+
+source_dir="."
+
+while [ $# -gt 0 ]; do
+       case "$1" in
+       -o)     shift; OUTFILE=$1; shift ;;
+       -b)     shift; inc_build=yes ;;
+       -s)     shift; rel_status=$1; shift ;;
+       -p)     shift; patch_level=$1; shift ;;
+       -d)     shift; dist_version=$1; shift ;;
+       -S)     shift; source_dir="$1"; shift ;;
+       *)      echo "$PROGNAME: usage: $USAGE" >&2 ; exit 2 ;;
+       esac
+done
+
+# Required arguments
+if [ -z "$dist_version" ]; then
+       echo "${PROGNAME}: required argument -d missing" >&2
+       echo "$PROGNAME: usage: $USAGE" >&2
+       exit 1
+fi
+
+#if [ -z "$patch_level" ]; then
+#      echo "${PROGNAME}: required argument -p missing" >&2
+#      echo "$PROGNAME: usage: $USAGE" >&2
+#      exit 1
+#fi
+
+# Defaults
+if [ -z "$rel_status" ]; then
+       rel_status="release"
+fi
+
+build_ver=
+if [ -r .build ]; then
+       build_ver=`cat .build`
+fi
+if [ -z "$build_ver" ]; then
+       build_ver=0
+fi
+
+# increment the build version if that's what's required
+
+if [ -n "$inc_build" ]; then
+       build_ver=`expr $build_ver + 1`
+fi
+
+# what's the patch level?
+if [ -z "$patch_level" ]; then
+       patchlevel_h=$source_dir/patchlevel.h
+       if [ -s $patchlevel_h ]; then
+               patch_level=`cat $patchlevel_h | grep '^#define[        ]*PATCHLEVEL' | awk '{print $NF}'`
+       fi
+fi
+if [ -z "$patch_level" ]; then
+       patch_level=0
+fi
+
+# If we have an output file specified, make it the standard output
+if [ -n "$OUTFILE" ]; then
+       if exec >$OUTFILE; then
+               :
+       else
+               echo "${PROGNAME}: cannot redirect standard output to $OUTFILE" >&2
+               exit 1
+       fi
+fi
+
+# Output the leading comment.
+echo "/* Version control for the shell.  This file gets changed when you say"
+echo "   \`make version.h' to the Makefile.  It is created by mkversion. */"
+
+# Output the distribution version.  Single numbers are converted to x.00.
+# Allow, as a special case, `[:digit:].[:digit:][:digit:][:alpha:]' for
+# intermediate versions (e.g., `2.05a').
+# Any characters other than digits and `.' are invalid.
+case "$dist_version" in
+[0-9].[0-9][0-9][a-z]) ;;      # special case
+*[!0-9.]*)     echo "mkversion.sh: ${dist_version}: bad distribution version" >&2
+               exit 1 ;;
+*.*)   ;;
+*)     dist_version=${dist_version}.00 ;;
+esac
+
+dist_major=`echo $dist_version | sed 's:\..*$::'`
+[ -z "${dist_major}" ] && dist_major=0
+
+dist_minor=`echo $dist_version | sed 's:^.*\.::'`
+case "$dist_minor" in
+"")    dist_minor=00 ;;
+[a-z]) dist_minor=00${dist_minor} ;;
+?)     dist_minor=0${dist_minor} ;;
+*)     ;;
+esac
+
+#float_dist=`echo $dist_version | awk '{printf "%.2f\n", $1}'`
+float_dist=${dist_major}.${dist_minor}
+
+echo
+echo "/* The distribution version number of this shell. */"
+echo "#define DISTVERSION \"${float_dist}\""
+
+# Output the patch level
+#echo
+#echo "/* The patch level of this version of the shell. */"
+#echo "#define PATCHLEVEL ${patch_level}"
+
+# Output the build version
+echo
+echo "/* The last built version of this shell. */"
+echo "#define BUILDVERSION ${build_ver}"
+
+# Output the release status
+echo
+echo "/* The release status of this shell. */"
+echo "#define RELSTATUS \"${rel_status}\""
+
+# Output the SCCS version string
+sccs_string="${float_dist}.${patch_level}(${build_ver}) ${rel_status} GNU"
+echo
+echo "/* A version string for use by sccs and the what command. */"
+echo "#define SCCSVERSION \"@(#)Bash version ${sccs_string}\""
+
+# extern function declarations
+#echo
+#echo '/* Functions from version.c. */'
+#echo 'extern char *shell_version_string __P((void));'
+#echo 'extern void show_shell_version __P((int));'
+
+if [ -n "$inc_build" ]; then
+       # Make sure we can write to .build
+       if [ -f .build ] && [ ! -w .build ]; then
+               echo "$PROGNAME: cannot write to .build, not incrementing build version" >&2
+       else
+               echo "$build_ver" > .build
+       fi
+fi
+       
+exit 0
index 72ec06a2c1fd8dde92acea5e8ac773e35f1d061b..3efcf32d68e9722024b6ca9d67f9e81b2aa5ac04 100755 (executable)
@@ -1,4 +1,4 @@
-BUILD_DIR=/usr/local/build/bash/bash-current
+BUILD_DIR=/usr/local/build/chet/bash/bash-current
 THIS_SH=$BUILD_DIR/bash
 PATH=$PATH:$BUILD_DIR
 
index f0c456e58a4a9c26445f0c888ddd678cbffaccbf..fa2ae2ac66f509e5f8b15d8de7eb983fe4ef99ce 100644 (file)
@@ -170,8 +170,8 @@ too many elements -- expect three five seven
 three five seven
 positive offset - expect five seven
 five seven
-negative offset - expect five seven
-five seven
+negative offset to unset element - expect seven
+seven
 positive offset 2 - expect seven
 seven
 negative offset 2 - expect seven
index db02c895def316018a43b8cf7258eb9997d6fef4..4f5d830dc8bfac2235e1c490a084e9183df0afda 100644 (file)
@@ -322,7 +322,7 @@ echo ${av[@]:3:5}   # how about too many elements?
 
 echo positive offset - expect five seven
 echo ${av[@]:5:2}
-echo negative offset - expect five seven
+echo negative offset to unset element - expect seven
 echo ${av[@]: -2:2}
 
 echo positive offset 2 - expect seven