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
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
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
--- /dev/null
+#
+# 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
-# Makefile for bash-3.0, version 2.152
+# Makefile for bash-3.0, version 2.153
#
# Copyright (C) 1996-2004 Free Software Foundation, Inc.
${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
# for chet
reconfig: force
- sh $(srcdir)/configure
+ sh $(srcdir)/configure -C
#newversion: mkversion
# $(RM) .build
--- /dev/null
+# 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
@%:@! /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>.
@%:@
# 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"
# 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]...
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
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
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 $@
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' ;;
-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
} >&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
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'`\\"
'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' )
);
-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'])
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. */
#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])
fflush (stdout);
if (ferror (stdout))
{
- builtin_error (_("write error: %s"), strerror (errno));
+ sh_wrerror ();
clearerr (stdout);
return (EXECUTION_FAILURE);
}
builtin_error (_("%s: not a shell builtin"), s);
}
+void
+sh_wrerror ()
+{
+ builtin_error (_("write error: %s"), strerror (errno));
+}
+
/* **************************************************************** */
/* */
/* Shell positional parameter manipulation */
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));
fflush (stdout);
if (ferror (stdout))
{
+ sh_wrerror ();
clearerr (stdout);
return (EXECUTION_FAILURE);
}
#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));
case 'b': /* expand escapes in argument */
{
char *p, *xp;
- int rlen;
+ int rlen, r;
p = getstr ();
ch = rlen = 0;
{
/* 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;
}
case 'q': /* print with shell quoting */
{
char *p, *xp;
+ int r;
p = getstr ();
if (ansic_shouldquote (p))
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;
}
modstart[0] = thisch;
modstart[1] = nextch;
}
+
+ if (ferror (stdout))
+ {
+ sh_wrerror ();
+ clearerr (stdout);
+ PRETURN (EXECUTION_FAILURE);
+ }
}
while (garglist && garglist != list->next);
}
/* 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 */
/* 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
/* 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
--- /dev/null
+/* 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_ */
#! /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>.
#
# 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"
# 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]...
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
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
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 $@
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' ;;
-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
} >&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
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'`\\"
# 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)
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])
# 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)
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
-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
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.
--- /dev/null
+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.
.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
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).
.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.
.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
@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
@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
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;
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));
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
}
}
@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}
--- /dev/null
+@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
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
# 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 \
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
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
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
--- /dev/null
+#
+# 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
--- /dev/null
+/* 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
--- /dev/null
+/* 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
#include "parser.h"
#include "mailcheck.h"
#include "test.h"
+#include "builtins.h"
#include "builtins/common.h"
#include "builtins/builtext.h"
#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. */
parser_state &= ~PST_ALEXPNEXT;
#endif /* ALIAS */
+ parser_state &= ~PST_ASSIGNOK;
+
return (character);
}
parser_state &= ~PST_ALEXPNEXT;
#endif /* ALIAS */
+ parser_state &= ~PST_ASSIGNOK;
+
peek_char = shell_getc (1);
if (character == peek_char)
{
#if defined (ALIAS)
parser_state &= ~PST_ALEXPNEXT;
#endif /* ALIAS */
+
return (SEMI_SEMI);
case '&':
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 == '(') /* ) */
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))
--- /dev/null
+/* 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 = ¤t_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 */
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_ */
--- /dev/null
+/* 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_ */
--- /dev/null
+# Set of available languages.
+en@quot en@boldquot
--- /dev/null
+# 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:
--- /dev/null
+# 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 =
--- /dev/null
+# 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 =
--- /dev/null
+# 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
--- /dev/null
+This apparently requires GNU sed
--- /dev/null
+#
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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 ""
--- /dev/null
+# 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 ""
--- /dev/null
+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
--- /dev/null
+#: /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 ""
--- /dev/null
+# 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.
+#
--- /dev/null
+# 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."
--- /dev/null
+# 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.
+#
--- /dev/null
+# 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."
--- /dev/null
+# 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
+}
--- /dev/null
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
--- /dev/null
+#: 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 ""
--- /dev/null
+# 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
+}
#: 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"
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"
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
"-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 ""
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 ""
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 ""
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:279
+#: builtins/umask.def:281
#, c-format
msgid "`%c': invalid symbolic mode character"
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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
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 ""
--- /dev/null
+*** ../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 ""
#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
}
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 ;;
*.*) ;;
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
--- /dev/null
+#! /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
--- /dev/null
+#! /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
-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
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
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