From: Chet Ramey Date: Sat, 3 Dec 2011 18:36:10 +0000 (-0500) Subject: commit bash-20040909 snapshot X-Git-Tag: bash-3.1-alpha~46 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=301e21427ea6190bace0656e25fa070a469dc05b;p=thirdparty%2Fbash.git commit bash-20040909 snapshot --- diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 40d94b6ac..0e715d22b 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -9965,3 +9965,66 @@ subst.c list_append for each split word -- as the list gets long, you have to traverse it every time. Keep a pointer to the end of the list and and just tack onto it + + 9/8 + --- +lib/readline/complete.c + - change fnprint to calculate the displayed width of a filename in + the same way as fnwidth + +subst.c + - in verify_substring_values, when expanding ${array[@]:offset}, make + sure negative offsets count from one greater than the array's + maximum index so things like ${x[@}: -1} work to give the last element + (requires fixing array tests) + +builtins/common.c + - new error function, sh_wrerror(), for builtins to call when a write + error occurs + +builtins/common.h + - extern declaration for sh_wrerror() + +builtins/cd.def + - change builtin_error call to use sh_wrerror() + +builtins/echo.def + - report write errors with sh_wrerror() instead of just returning + failure + +builtins/printf.def + - change printstr to return failure (-1) or success (0) indication + rather than void + - report write errors when printstr() fails, return failure + - if any of the PF/printf calls fail, report write error and return + failure + +execute_cmd.c + - change execute_in_subshell so the subshell command inherits the + command timing flags from the enclosing COMMAND * + + 9/11 + ---- +[prayers for the victims of 9/11/2001] + +lib/sh/strnlen.c + - new file, implementation of GNU libc extension function strnlen + +lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST + - changes for strnlen + +configure.in + - version changed to 3.1-devel + +doc/bash.1, lib/readline/doc/rluser.texi + - added description of `-o plusdirs' to complete/compgen (thanks, + Arnold) + +parse.y + - new parser_state flag, PST_ASSIGNOK, if set indicates we're parsing + arguments to a builtin that accepts assignment statement arguments + - turn on PST_ASSIGNOK in read_token_word when appropriate + - turn off PST_ASSIGNOK in read_token when appropriate + - don't attempt to parse a compound assignment specially unless we're + in a position where an assignment statement is acceptable, or + PST_ASSIGNOK is set diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~ index e058bf10d..443fc3aa1 100644 --- a/CWRU/CWRU.chlog~ +++ b/CWRU/CWRU.chlog~ @@ -9958,3 +9958,70 @@ lib/readline/display.c that might contain double-width multibyte characters. Fixes from Tomohiro Kubota + 9/6 + --- +subst.c + - change word_list_split to avoid really bad behavior caused by calling + list_append for each split word -- as the list gets long, you have + to traverse it every time. Keep a pointer to the end of the list and + and just tack onto it + + 9/8 + --- +lib/readline/complete.c + - change fnprint to calculate the displayed width of a filename in + the same way as fnwidth + +subst.c + - in verify_substring_values, when expanding ${array[@]:offset}, make + sure negative offsets count from one greater than the array's + maximum index so things like ${x[@}: -1} work to give the last element + (requires fixing array tests) + +builtins/common.c + - new error function, sh_wrerror(), for builtins to call when a write + error occurs + +builtins/common.h + - extern declaration for sh_wrerror() + +builtins/cd.def + - change builtin_error call to use sh_wrerror() + +builtins/echo.def + - report write errors with sh_wrerror() instead of just returning + failure + +builtins/printf.def + - change printstr to return failure (-1) or success (0) indication + rather than void + - report write errors when printstr() fails, return failure + - if any of the PF/printf calls fail, report write error and return + failure + +execute_cmd.c + - change execute_in_subshell so the subshell command inherits the + command timing flags from the enclosing COMMAND * + + 9/11 + ---- +[prayers for the victims of 9/11/2001] + +lib/sh/strnlen.c + - new file, implementation of GNU libc extension function strnlen + +lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST + - changes for strnlen + +configure.in + - version changed to 3.1-devel + +doc/bash.1, lib/readline/doc/rluser.texi + - added description of `-o plusdirs' to complete/compgen (thanks, + Arnold) + +parse.y + - new parser_state flag, PST_ASSIGNOK, if set indicates we're parsing + arguments to a builtin that accepts assignment statement arguments + - turn on PST_ASSIGNOK in read_token_word when appropriate + - turn off PST_ASSIGNOK in read_token when appropriate diff --git a/MANIFEST b/MANIFEST index a7b7be3eb..398d522df 100644 --- a/MANIFEST +++ b/MANIFEST @@ -408,6 +408,7 @@ lib/sh/strftime.c f lib/sh/strindex.c f lib/sh/stringlist.c f lib/sh/stringvec.c f +lib/sh/strnlen.c f lib/sh/strpbrk.c f lib/sh/strstr.c f lib/sh/strtod.c f diff --git a/MANIFEST~ b/MANIFEST~ new file mode 100644 index 000000000..a7b7be3eb --- /dev/null +++ b/MANIFEST~ @@ -0,0 +1,957 @@ +# +# Master distribution manifest for bash +# +# +# Filename type +# +CWRU d +CWRU/misc d +builtins d +cross-build d +doc d +examples d +examples/bashdb d +examples/obashdb d +examples/complete d +examples/functions d +examples/scripts d +examples/scripts.v2 d +examples/scripts.noah d +examples/startup-files d +examples/startup-files/apple d +examples/misc d +examples/loadables d +examples/loadables/perl d +include d +lib d +lib/glob d +lib/glob/doc d +lib/intl d +lib/malloc d +lib/readline d +lib/readline/doc d +lib/readline/examples d +lib/sh d +lib/termcap d +lib/termcap/grot d +lib/tilde d +po d +support d +tests d +tests/misc d +ABOUT-NLS f +CHANGES f +COMPAT f +COPYING f +INSTALL f +MANIFEST f +NEWS f +NOTES f +POSIX f +README f +RBASH f +AUTHORS f +Y2K f +configure.in f +configure f +Makefile.in f +config-top.h f +config-bot.h f +config.h.in f +aclocal.m4 f +array.c f +arrayfunc.c f +eval.c f +print_cmd.c f +general.c f +list.c f +locale.c f +stringlib.c f +variables.c f +make_cmd.c f +copy_cmd.c f +unwind_prot.c f +dispose_cmd.c f +bashhist.c f +hashcmd.c f +hashlib.c f +parse.y f +pathexp.c f +subst.c f +shell.c f +trap.c f +sig.c f +siglist.c f +version.c f +flags.c f +jobs.c f +input.c f +mailcheck.c f +test.c f +expr.c f +alias.c f +execute_cmd.c f +findcmd.c f +redir.c f +bashline.c f +braces.c f +bracecomp.c f +nojobs.c f +error.c f +xmalloc.c f +pcomplete.c f +pcomplib.c f +mksyntax.c f +alias.h f +builtins.h f +bashhist.h f +bashline.h f +conftypes.h f +patchlevel.h f +variables.h f +array.h f +arrayfunc.h f +jobs.h f +findcmd.h f +hashlib.h f +quit.h f +flags.h f +shell.h f +syntax.h f +pathexp.h f +parser.h f +pcomplete.h f +sig.h f +test.h f +trap.h f +general.h f +unwind_prot.h f +input.h f +error.h f +command.h f +externs.h f +siglist.h f +subst.h f +dispose_cmd.h f +hashcmd.h f +bashansi.h f +bashjmp.h f +bashintl.h f +make_cmd.h f +execute_cmd.h f +redir.h f +bashtypes.h f +mailcheck.h f +xmalloc.h f +y.tab.c f +y.tab.h f +parser-built f +pathnames.h.in f +builtins/Makefile.in f +builtins/alias.def f +builtins/bind.def f +builtins/break.def f +builtins/builtin.def f +builtins/caller.def f +builtins/cd.def f +builtins/colon.def f +builtins/command.def f +builtins/complete.def f +builtins/common.c f +builtins/declare.def f +builtins/echo.def f +builtins/enable.def f +builtins/eval.def f +builtins/evalfile.c f +builtins/evalstring.c f +builtins/exec.def f +builtins/exit.def f +builtins/fc.def f +builtins/fg_bg.def f +builtins/getopt.c f +builtins/getopt.h f +builtins/getopts.def f +builtins/hash.def f +builtins/help.def f +builtins/let.def f +builtins/history.def f +builtins/jobs.def f +builtins/kill.def f +builtins/mkbuiltins.c f +builtins/printf.def f +builtins/pushd.def f +builtins/read.def f +builtins/reserved.def f +builtins/return.def f +builtins/set.def f +builtins/setattr.def f +builtins/shift.def f +builtins/shopt.def f +builtins/source.def f +builtins/suspend.def f +builtins/test.def f +builtins/times.def f +builtins/trap.def f +builtins/type.def f +builtins/ulimit.def f +builtins/umask.def f +builtins/wait.def f +builtins/psize.c f +builtins/psize.sh f +builtins/inlib.def f +builtins/bashgetopt.c f +builtins/common.h f +builtins/bashgetopt.h f +cross-build/cygwin32.cache f +cross-build/win32sig.h f +cross-build/x86-beos.cache f +cross-build/beos-sig.h f +cross-build/opennt.cache f +include/ansi_stdlib.h f +include/chartypes.h f +include/filecntl.h f +include/gettext.h f +include/maxpath.h f +include/memalloc.h f +include/ocache.h f +include/posixdir.h f +include/posixjmp.h f +include/posixstat.h f +include/posixtime.h f +include/posixwait.h f +include/shmbutil.h f +include/shtty.h f +include/stdc.h f +include/systimes.h f +include/typemax.h f +include/unionwait.h f +lib/glob/Makefile.in f +lib/glob/sm_loop.c f +lib/glob/smatch.c f +lib/glob/strmatch.c f +lib/glob/strmatch.h f +lib/glob/glob.c f +lib/glob/glob.h f +lib/glob/glob_loop.c f +lib/glob/xmbsrtowcs.c f +lib/glob/collsyms.h f +lib/glob/doc/Makefile f +lib/glob/doc/glob.texi f +lib/glob/ndir.h f +lib/intl/ChangeLog f +lib/intl/Makefile.in f +lib/intl/VERSION f +lib/intl/bindtextdom.c f +lib/intl/config.charset f +lib/intl/dcgettext.c f +lib/intl/dcigettext.c f +lib/intl/dcngettext.c f +lib/intl/dgettext.c f +lib/intl/dngettext.c f +lib/intl/eval-plural.h f +lib/intl/explodename.c f +lib/intl/finddomain.c f +lib/intl/gettext.c f +lib/intl/gettextP.h f +lib/intl/gmo.h f +lib/intl/hash-string.h f +lib/intl/intl-compat.c f +lib/intl/l10nflist.c f +lib/intl/libgnuintl.h.in f +lib/intl/loadinfo.h f +lib/intl/loadmsgcat.c f +lib/intl/localcharset.c f +lib/intl/localcharset.h f +lib/intl/locale.alias f +lib/intl/localealias.c f +lib/intl/localename.c f +lib/intl/log.c f +lib/intl/ngettext.c f +lib/intl/os2compat.c f +lib/intl/os2compat.h f +lib/intl/osdep.c f +lib/intl/plural-exp.c f +lib/intl/plural-exp.h f +lib/intl/plural.c f +lib/intl/plural.y f +lib/intl/ref-add.sin f +lib/intl/ref-del.sin f +lib/intl/relocatable.c f +lib/intl/relocatable.h f +lib/intl/textdomain.c f +lib/malloc/Makefile.in f +lib/malloc/getpagesize.h f +lib/malloc/imalloc.h f +lib/malloc/mstats.h f +lib/malloc/shmalloc.h f +lib/malloc/table.h f +lib/malloc/watch.h f +lib/malloc/alloca.c f +lib/malloc/malloc.c f +lib/malloc/stats.c f +lib/malloc/table.c f +lib/malloc/trace.c f +lib/malloc/watch.c f +lib/malloc/xmalloc.c f +lib/malloc/xleaktrace f 755 +lib/malloc/stub.c f +lib/malloc/i386-alloca.s f +lib/malloc/x386-alloca.s f +lib/readline/COPYING f +lib/readline/Makefile.in f +lib/readline/ChangeLog f +lib/readline/README f +lib/readline/STANDALONE f +lib/readline/readline.c f +lib/readline/vi_mode.c f +lib/readline/emacs_keymap.c f +lib/readline/vi_keymap.c f +lib/readline/history.c f +lib/readline/histexpand.c f +lib/readline/histsearch.c f +lib/readline/histfile.c f +lib/readline/funmap.c f +lib/readline/keymaps.c f +lib/readline/util.c f +lib/readline/terminal.c f +lib/readline/xmalloc.c f +lib/readline/search.c f +lib/readline/isearch.c f +lib/readline/parens.c f +lib/readline/rltty.c f +lib/readline/compat.c f +lib/readline/complete.c f +lib/readline/bind.c f +lib/readline/display.c f +lib/readline/signals.c f +lib/readline/kill.c f +lib/readline/text.c f +lib/readline/undo.c f +lib/readline/macro.c f +lib/readline/input.c f +lib/readline/callback.c f +lib/readline/mbutil.c f +lib/readline/misc.c f +lib/readline/nls.c f +lib/readline/shell.c f +lib/readline/savestring.c f +lib/readline/tilde.c f +lib/readline/tilde.h f +lib/readline/rldefs.h f +lib/readline/rlconf.h f +lib/readline/rlmbutil.h f +lib/readline/rlshell.h f +lib/readline/rltty.h f +lib/readline/rltypedefs.h f +lib/readline/rlwinsize.h f +lib/readline/readline.h f +lib/readline/tcap.h f +lib/readline/keymaps.h f +lib/readline/history.h f +lib/readline/histlib.h f +lib/readline/chardefs.h f +lib/readline/posixdir.h f +lib/readline/posixjmp.h f +lib/readline/posixstat.h f +lib/readline/ansi_stdlib.h f +lib/readline/rlstdc.h f +lib/readline/rlprivate.h f +lib/readline/xmalloc.h f +lib/readline/doc/Makefile f +lib/readline/doc/version.texi f +lib/readline/doc/rlman.texi f +lib/readline/doc/rltech.texi f +lib/readline/doc/rluser.texi f +lib/readline/doc/rluserman.texi f +lib/readline/doc/history.texi f +lib/readline/doc/hstech.texi f +lib/readline/doc/hsuser.texi f +lib/readline/doc/fdl.texi f +lib/readline/examples/Makefile f +lib/readline/examples/excallback.c f +lib/readline/examples/fileman.c f +lib/readline/examples/manexamp.c f +lib/readline/examples/histexamp.c f +lib/readline/examples/rltest.c f +lib/readline/examples/rl.c f +lib/readline/examples/rlcat.c f +lib/readline/examples/Inputrc f +lib/sh/Makefile.in f +lib/sh/clktck.c f +lib/sh/clock.c f +lib/sh/fmtullong.c f +lib/sh/fmtulong.c f +lib/sh/fmtumax.c f +lib/sh/getcwd.c f +lib/sh/getenv.c f +lib/sh/inet_aton.c f +lib/sh/itos.c f +lib/sh/mailstat.c f +lib/sh/makepath.c f +lib/sh/memset.c f +lib/sh/mktime.c f +lib/sh/netconn.c f +lib/sh/netopen.c f +lib/sh/oslib.c f +lib/sh/pathcanon.c f +lib/sh/pathphys.c f +lib/sh/rename.c f +lib/sh/setlinebuf.c f +lib/sh/shmatch.c f +lib/sh/shquote.c f +lib/sh/shtty.c f +lib/sh/snprintf.c f +lib/sh/spell.c f +lib/sh/strcasecmp.c f +lib/sh/strerror.c f +lib/sh/strftime.c f +lib/sh/strindex.c f +lib/sh/stringlist.c f +lib/sh/stringvec.c f +lib/sh/strpbrk.c f +lib/sh/strstr.c f +lib/sh/strtod.c f +lib/sh/strtoimax.c f +lib/sh/strtol.c f +lib/sh/strtoll.c f +lib/sh/strtoul.c f +lib/sh/strtoull.c f +lib/sh/strtoumax.c f +lib/sh/strtrans.c f +lib/sh/times.c f +lib/sh/timeval.c f +lib/sh/tmpfile.c f +lib/sh/vprint.c f +lib/sh/xstrchr.c f +lib/sh/zcatfd.c f +lib/sh/zread.c f +lib/sh/zwrite.c f +lib/termcap/Makefile.in f +lib/termcap/ltcap.h f +lib/termcap/termcap.c f +lib/termcap/termcap.h f +lib/termcap/tparam.c f +lib/termcap/version.c f +lib/termcap/grot/termcap.info f +lib/termcap/grot/termcap.info-1 f +lib/termcap/grot/termcap.info-2 f +lib/termcap/grot/termcap.info-3 f +lib/termcap/grot/termcap.info-4 f +lib/termcap/grot/NEWS f +lib/termcap/grot/INSTALL f +lib/termcap/grot/ChangeLog f +lib/termcap/grot/texinfo.tex f +lib/termcap/grot/termcap.texi f +lib/termcap/grot/Makefile.in f +lib/termcap/grot/configure f +lib/termcap/grot/configure.in f +lib/termcap/grot/COPYING f +lib/termcap/grot/README f +lib/tilde/README f +lib/tilde/Makefile.in f +lib/tilde/tilde.c f +lib/tilde/tilde.h f +lib/tilde/shell.c f +po/LINGUAS f +po/Makefile.in.in f +po/Makevars f +po/POTFILES.in f +po/Rules-builtins f +po/Rules-quot f +po/bash.pot f +po/boldquot.sed f +po/en@quot.header f +po/en@boldquot.header f +po/en@quot.po f +po/en@boldquot.po f +po/en@quot.gmo f +po/en@boldquot.gmo f +po/insert-header.sin f +po/quot.sed f +po/remove-potcdate.sin f +CWRU/misc/open-files.c f +CWRU/misc/sigs.c f +CWRU/misc/sigstat.c f +CWRU/misc/bison f +CWRU/misc/errlist.c f +CWRU/misc/hpux10-dlfcn.h f +CWRU/PLATFORMS f +CWRU/README f +CWRU/changelog f +CWRU/sh-redir-hack f +CWRU/mh-folder-comp f +doc/FAQ f +doc/Makefile.in f +doc/bash.1 f +doc/bashbug.1 f +doc/builtins.1 f +doc/rbash.1 f +doc/README f +doc/INTRO f +doc/texinfo.tex f +doc/bashref.texi f +doc/version.texi f +doc/bashref.info f +doc/article.ms f +doc/htmlpost.sh f 755 +doc/infopost.sh f 755 +doc/fdl.texi f +doc/fdl.txt f +support/Makefile.in f +support/bashversion.c f +support/config.guess f +support/config.rpath f 755 +support/config.sub f +support/printenv.sh f 755 +support/printenv.c f +support/bash.xbm f +support/missing f 755 +support/mkclone f 755 +support/mkconffiles f 755 +support/mkdirs f 755 +support/mkinstalldirs f 755 +support/mkversion.sh f 755 +support/mksignames.c f +support/bashbug.sh f +support/man2html.c f +support/recho.c f +support/zecho.c f +support/SYMLINKS f +support/fixlinks f 755 +support/install.sh f 755 +support/texi2dvi f 755 +support/texi2html f 755 +support/xenix-link.sh f 755 +support/shobj-conf f 755 +support/rlvers.sh f 755 +examples/bashdb/PERMISSION f +examples/bashdb/bashdb f +examples/bashdb/bashdb.el f +examples/obashdb/PERMISSION f +examples/obashdb/README f +examples/obashdb/bashdb f +examples/obashdb/bashdb.fns f +examples/obashdb/bashdb.pre f +examples/complete/complete-examples f +examples/complete/complete.ianmac f +examples/complete/complete2.ianmac f +examples/complete/complete.freebsd f +examples/complete/complete.gnu-longopt f +examples/complete/bashcc-1.0.1.tar.gz f +examples/loadables/README f +examples/loadables/template.c f +examples/loadables/Makefile.in f +examples/loadables/necho.c f +examples/loadables/hello.c f +examples/loadables/print.c f +examples/loadables/realpath.c f +examples/loadables/sleep.c f +examples/loadables/strftime.c f +examples/loadables/truefalse.c f +examples/loadables/getconf.h f +examples/loadables/getconf.c f +examples/loadables/finfo.c f +examples/loadables/cat.c f +examples/loadables/cut.c f +examples/loadables/logname.c f +examples/loadables/basename.c f +examples/loadables/dirname.c f +examples/loadables/tty.c f +examples/loadables/pathchk.c f +examples/loadables/tee.c f +examples/loadables/rmdir.c f +examples/loadables/head.c f +examples/loadables/printenv.c f +examples/loadables/push.c f +examples/loadables/id.c f +examples/loadables/whoami.c f +examples/loadables/uname.c f +examples/loadables/sync.c f +examples/loadables/mkdir.c f +examples/loadables/ln.c f +examples/loadables/unlink.c f +examples/loadables/perl/Makefile.in f +examples/loadables/perl/README f +examples/loadables/perl/bperl.c f +examples/loadables/perl/iperl.c f +examples/functions/array-stuff f +examples/functions/array-to-string f +examples/functions/autoload f +examples/functions/autoload.v2 f +examples/functions/autoload.v3 f +examples/functions/basename f +examples/functions/basename2 f +examples/functions/coproc.bash f +examples/functions/coshell.README f +examples/functions/coshell.bash f +examples/functions/csh-compat f +examples/functions/dirfuncs f +examples/functions/dirname f +examples/functions/emptydir f +examples/functions/exitstat f +examples/functions/external f +examples/functions/fact f +examples/functions/fstty f +examples/functions/func f +examples/functions/gethtml f +examples/functions/getoptx.bash f +examples/functions/inetaddr f +examples/functions/inpath f +examples/functions/isnum.bash f +examples/functions/isnum2 f +examples/functions/isvalidip f +examples/functions/jdate.bash f +examples/functions/jj.bash f +examples/functions/keep f +examples/functions/ksh-cd f +examples/functions/ksh-compat-test f +examples/functions/kshenv f +examples/functions/login f +examples/functions/lowercase f +examples/functions/manpage f +examples/functions/mhfold f +examples/functions/notify.bash f +examples/functions/pathfuncs f +examples/functions/recurse f +examples/functions/repeat2 f +examples/functions/repeat3 f +examples/functions/seq f +examples/functions/seq2 f +examples/functions/shcat f +examples/functions/shcat2 f +examples/functions/sort-pos-params f +examples/functions/substr f +examples/functions/substr2 f +examples/functions/term f +examples/functions/whatis f +examples/functions/whence f +examples/functions/which f +examples/functions/xalias.bash f +examples/functions/xfind.bash f +examples/scripts/adventure.sh f +examples/scripts/bcsh.sh f +examples/scripts/cat.sh f +examples/scripts/center f +examples/scripts/dd-ex.sh f +examples/scripts/fixfiles.bash f +examples/scripts/hanoi.bash f +examples/scripts/inpath f +examples/scripts/krand.bash f +examples/scripts/line-input.bash f +examples/scripts/nohup.bash f +examples/scripts/precedence f +examples/scripts/randomcard.bash f +examples/scripts/scrollbar f +examples/scripts/scrollbar2 f +examples/scripts/self-repro f +examples/scripts/showperm.bash f +examples/scripts/shprompt f +examples/scripts/spin.bash f +examples/scripts/timeout f +examples/scripts/vtree2 f +examples/scripts/vtree3 f +examples/scripts/vtree3a f +examples/scripts/websrv.sh f +examples/scripts/xterm_title f +examples/scripts/zprintf f +examples/startup-files/README f +examples/startup-files/Bashrc.bfox f +examples/startup-files/Bash_aliases f +examples/startup-files/Bash_profile f +examples/startup-files/bash-profile f +examples/startup-files/bashrc f +examples/startup-files/apple/README f +examples/startup-files/apple/aliases f +examples/startup-files/apple/bash.defaults f +examples/startup-files/apple/environment f +examples/startup-files/apple/login f +examples/startup-files/apple/logout f +examples/startup-files/apple/rc f +examples/misc/suncmd.termcap f +examples/misc/aliasconv.sh f +examples/misc/aliasconv.bash f +examples/misc/cshtobash f +tests/README f +tests/alias.tests f +tests/alias.right f +tests/arith-for.tests f +tests/arith-for.right f +tests/arith.tests f +tests/arith.right f +tests/arith1.sub f +tests/arith2.sub f +tests/array.tests f +tests/array.right f +tests/array-at-star f +tests/array2.right f +tests/braces.tests f +tests/braces.right f +tests/builtins.tests f +tests/builtins.right f +tests/builtins1.sub f +tests/builtins2.sub f +tests/source1.sub f +tests/source2.sub f +tests/source3.sub f +tests/source4.sub f +tests/source5.sub f +tests/cond.tests f +tests/cond.right f +tests/cprint.tests f +tests/cprint.right f +tests/dbg-support.right f +tests/dbg-support.sub f +tests/dbg-support.tests f +tests/dbg-support2.right f +tests/dbg-support2.tests f +tests/dollar-at-star f +tests/dollar-at1.sub f +tests/dollar-at2.sub f +tests/dollar-star1.sub f +tests/dollar.right f +tests/dstack.tests f +tests/dstack.right f +tests/dstack2.tests f +tests/dstack2.right f +tests/errors.tests f +tests/errors.right f +tests/execscript f +tests/exec.right f +tests/exec1.sub f 755 +tests/exec2.sub f +tests/exec3.sub f +tests/exec4.sub f +tests/exec5.sub f +tests/exec6.sub f +tests/exec7.sub f +tests/exp-tests f +tests/exp.right f +tests/extglob.tests f +tests/extglob.right f +tests/extglob2.tests f +tests/extglob2.right f +tests/func.tests f +tests/func.right f +tests/func1.sub f +tests/func2.sub f +tests/func3.sub f +tests/getopts.tests f +tests/getopts.right f +tests/getopts1.sub f +tests/getopts2.sub f +tests/getopts3.sub f +tests/getopts4.sub f +tests/getopts5.sub f +tests/getopts6.sub f +tests/getopts7.sub f +tests/glob-test f +tests/glob1.sub f +tests/glob.right f +tests/heredoc.tests f +tests/heredoc.right f +tests/herestr.tests f +tests/herestr.right f +tests/histexp.tests f +tests/histexp.right f +tests/history.tests f +tests/history.right f +tests/history.list f 444 +tests/ifs.tests f +tests/ifs.right f +tests/input-line.sh f +tests/input-line.sub f +tests/input.right f +tests/invert.tests f +tests/invert.right f +tests/jobs.tests f +tests/jobs1.sub f +tests/jobs2.sub f +tests/jobs3.sub f +tests/jobs4.sub f +tests/jobs.right f +tests/more-exp.tests f +tests/more-exp.right f +tests/new-exp.tests f +tests/new-exp1.sub f +tests/new-exp2.sub f +tests/new-exp3.sub f +tests/new-exp4.sub f +tests/new-exp.right f +tests/nquote.tests f +tests/nquote.right f +tests/nquote1.tests f +tests/nquote1.right f +tests/nquote2.tests f +tests/nquote2.right f +tests/nquote3.tests f +tests/nquote3.right f +tests/nquote4.tests f +tests/nquote4.right f +tests/posix2.tests f +tests/posix2.right f +tests/posixpat.tests f +tests/posixpat.right f +tests/prec.right f +tests/precedence f +tests/printf.tests f +tests/printf.right f +tests/quote.tests f +tests/quote.right f +tests/read.tests f +tests/read.right f +tests/read1.sub f +tests/read2.sub f +tests/read3.sub f +tests/read4.sub f +tests/read5.sub f +tests/redir.tests f +tests/redir.right f +tests/redir1.sub f +tests/redir2.sub f +tests/redir3.sub f +tests/redir3.in1 f +tests/redir3.in2 f +tests/redir4.sub f +tests/redir4.in1 f +tests/redir5.sub f +tests/redir6.sub f +tests/rhs-exp.tests f +tests/rhs-exp.right f +tests/rsh.tests f +tests/rsh.right f +tests/run-all f +tests/run-minimal f +tests/run-alias f +tests/run-arith-for f +tests/run-arith f +tests/run-array f +tests/run-array2 f +tests/run-braces f +tests/run-builtins f +tests/run-cond f +tests/run-cprint f +tests/run-dbg-support f +tests/run-dbg-support2 f +tests/run-dirstack f +tests/run-dollars f +tests/run-errors f +tests/run-execscript f +tests/run-exp-tests f +tests/run-extglob f +tests/run-extglob2 f +tests/run-func f +tests/run-getopts f +tests/run-glob-test f +tests/run-heredoc f +tests/run-herestr f +tests/run-histexpand f +tests/run-history f +tests/run-ifs f +tests/run-input-test f +tests/run-invert f +tests/run-jobs f +tests/run-more-exp f +tests/run-new-exp f +tests/run-nquote f +tests/run-nquote1 f +tests/run-nquote2 f +tests/run-nquote3 f +tests/run-nquote4 f +tests/run-posix2 f +tests/run-posixpat f +tests/run-precedence f +tests/run-printf f +tests/run-quote f +tests/run-read f +tests/run-redir f +tests/run-rhs-exp f +tests/run-rsh f +tests/run-set-e f +tests/run-set-x f +tests/run-shopt f +tests/run-strip f +tests/run-test f +tests/run-tilde f +tests/run-trap f +tests/run-type f +tests/run-varenv f +tests/set-e-test f +tests/set-e.right f +tests/set-x.tests f +tests/set-x.right f +tests/shopt.tests f +tests/shopt.right f +tests/strip.tests f +tests/strip.right f +tests/test.tests f +tests/test.right f +tests/tilde-tests f +tests/tilde.right f +tests/trap.tests f +tests/trap.right f +tests/trap1.sub f 755 +tests/trap2.sub f 755 +tests/trap2a.sub f 755 +tests/type.tests f +tests/type.right f +tests/varenv.right f +tests/varenv.sh f +tests/varenv1.sub f +tests/varenv2.sub f +tests/version f +tests/version.mini f +tests/misc/dev-tcp.tests f +tests/misc/perf-script f +tests/misc/perftest f +tests/misc/read-nchars.tests f +tests/misc/redir-t2.sh f +tests/misc/run-r2.sh f +tests/misc/sigint-1.sh f +tests/misc/sigint-2.sh f +tests/misc/sigint-3.sh f +tests/misc/sigint-4.sh f +tests/misc/test-minus-e.1 f +tests/misc/test-minus-e.2 f +tests/misc/wait-bg.tests f +examples/scripts.v2/PERMISSION f +examples/scripts.v2/README f +examples/scripts.v2/arc2tarz f +examples/scripts.v2/bashrand f +examples/scripts.v2/cal2day.bash f +examples/scripts.v2/cdhist.bash f +examples/scripts.v2/corename f +examples/scripts.v2/fman f +examples/scripts.v2/frcp f +examples/scripts.v2/lowercase f +examples/scripts.v2/ncp f +examples/scripts.v2/newext f +examples/scripts.v2/nmv f +examples/scripts.v2/pages f +examples/scripts.v2/pf f +examples/scripts.v2/ren f +examples/scripts.v2/rename f +examples/scripts.v2/repeat f +examples/scripts.v2/untar f +examples/scripts.v2/uudec f +examples/scripts.v2/uuenc f +examples/scripts.v2/vtree f +examples/scripts.v2/where f +examples/scripts.v2/pmtop f +examples/scripts.v2/shprof f +examples/scripts.noah/PERMISSION f +examples/scripts.noah/README f +examples/scripts.noah/aref.bash f +examples/scripts.noah/bash.sub.bash f +examples/scripts.noah/bash_version.bash f +examples/scripts.noah/meta.bash f +examples/scripts.noah/mktmp.bash f +examples/scripts.noah/number.bash f +examples/scripts.noah/prompt.bash f +examples/scripts.noah/remap_keys.bash f +examples/scripts.noah/require.bash f +examples/scripts.noah/send_mail.bash f +examples/scripts.noah/shcat.bash f +examples/scripts.noah/source.bash f +examples/scripts.noah/string.bash f +examples/scripts.noah/stty.bash f +examples/scripts.noah/y_or_n_p.bash f diff --git a/Makefile.in b/Makefile.in index 56bc2b4b0..4e28496ee 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# Makefile for bash-3.0, version 2.152 +# Makefile for bash-3.0, version 2.153 # # Copyright (C) 1996-2004 Free Software Foundation, Inc. @@ -196,7 +196,8 @@ SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \ ${SH_LIBSRC}/fmtumax.c ${SH_LIBSRC}/netconn.c \ ${SH_LIBSRC}/mktime.c ${SH_LIBSRC}/strftime.c \ ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \ - ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c + ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c \ + ${SH_LIBSRC}/strnlen.c SHLIB_LIB = -lsh SHLIB_LIBNAME = libsh.a @@ -668,7 +669,7 @@ $(srcdir)/configure: $(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/confi # for chet reconfig: force - sh $(srcdir)/configure + sh $(srcdir)/configure -C #newversion: mkversion # $(RM) .build diff --git a/Makefile.in~ b/Makefile.in~ new file mode 100644 index 000000000..fb6a2eaac --- /dev/null +++ b/Makefile.in~ @@ -0,0 +1,1436 @@ +# Makefile for bash-3.0, version 2.152 +# +# Copyright (C) 1996-2004 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + +# Make sure the first target in the makefile is the right one +all: .made + +PACKAGE = @PACKAGE_NAME@ +VERSION = @PACKAGE_VERSION@ + +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_VERSION = @PACKAGE_VERSION@ + +# Include some boilerplate Gnu makefile definitions. +prefix = @prefix@ + +exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +infodir = @infodir@ +includedir = @includedir@ +datadir = @datadir@ +localedir = $(datadir)/locale + +mandir = @mandir@ +manpfx = man + +man1ext = .1 +man1dir = $(mandir)/$(manpfx)1 +man3ext = .3 +man3dir = $(mandir)/$(manpfx)3 + +htmldir = @htmldir@ + +# Support an alternate destination root directory for package building +DESTDIR = + +topdir = @top_srcdir@ +BUILD_DIR = @BUILD_DIR@ +top_builddir = @BUILD_DIR@ +srcdir = @srcdir@ +VPATH = .:@srcdir@ + +@SET_MAKE@ +CC = @CC@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +YACC = @YACC@ +SHELL = @MAKE_SHELL@ +CP = cp +RM = rm -f +AR = @AR@ +ARFLAGS = @ARFLAGS@ +RANLIB = @RANLIB@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALLMODE= -m 0755 +INSTALLMODE2 = -m 0555 + +TESTSCRIPT = @TESTSCRIPT@ + +#If you have purify, and want to use it, uncomment this definition or +# run the make as `make PURIFY=purify' +# or run configure with the --with-purify argument. +PURIFY = @PURIFY@ + +# Here is a rule for making .o files from .c files that does not +# force the type of the machine (like -M_MACHINE) into the flags. +.c.o: + $(RM) $@ + $(CC) $(CCFLAGS) -c $< + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ + +# The name of this program and some version information. +VERSPROG = bashversion$(EXEEXT) +VERSOBJ = bashversion.$(OBJEXT) + +Program = bash$(EXEEXT) +Version = @BASHVERS@ +PatchLevel = `$(BUILD_DIR)/$(VERSPROG) -p` +RELSTATUS = @RELSTATUS@ + +Machine = @host_cpu@ +OS = @host_os@ +VENDOR = @host_vendor@ +MACHTYPE = @host@ + +# comment out for release +DEBUG = @DEBUG@ +MALLOC_DEBUG = @MALLOC_DEBUG@ + +THIS_SH = $(BUILD_DIR)/$(Program) + +# PROFILE_FLAGS is either -pg, to generate profiling info for use +# with gprof, or nothing (the default). +PROFILE_FLAGS= @PROFILE_FLAGS@ + +CFLAGS = @CFLAGS@ +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +LOCAL_CFLAGS = @LOCAL_CFLAGS@ ${DEBUG} +DEFS = @DEFS@ +LOCAL_DEFS = @LOCAL_DEFS@ + +LOCALE_DEFS = -DLOCALEDIR='"$(localedir)"' -DPACKAGE='"$(PACKAGE)"' + +LOCAL_LIBS = @LOCAL_LIBS@ +LIBS = $(BUILTINS_LIB) $(LIBRARIES) @LIBS@ +STATIC_LD = @STATIC_LD@ +LOCAL_LDFLAGS = @LOCAL_LDFLAGS@ + +SYSTEM_FLAGS = -DPROGRAM='"$(Program)"' -DCONF_HOSTTYPE='"$(Machine)"' -DCONF_OSTYPE='"$(OS)"' -DCONF_MACHTYPE='"$(MACHTYPE)"' -DCONF_VENDOR='"$(VENDOR)"' $(LOCALE_DEFS) + +BASE_CCFLAGS = $(PROFILE_FLAGS) $(SYSTEM_FLAGS) $(LOCAL_DEFS) \ + $(DEFS) $(LOCAL_CFLAGS) $(INCLUDES) + +CCFLAGS = $(BASE_CCFLAGS) $(CPPFLAGS) $(CFLAGS) + +CCFLAGS_FOR_BUILD = $(BASE_CCFLAGS) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) + +LDFLAGS = @LDFLAGS@ $(STATIC_LD) $(LOCAL_LDFLAGS) $(PROFILE_FLAGS) $(CFLAGS) +LDFLAGS_FOR_BUILD = $(LDFLAGS) + +INCLUDES = -I. @RL_INCLUDE@ -I$(srcdir) -I$(BASHINCDIR) -I$(LIBSRC) $(INTL_INC) + +GCC_LINT_FLAGS = -Wall -Wshadow -Wpointer-arith -Wcast-qual \ + -Wcast-align -Wstrict-prototypes -Wconversion \ + -Wmissing-prototypes -Wtraditional -Wredundant-decls -pedantic + +GCC_LINT_CFLAGS = $(BASE_CCFLAGS) $(CPPFLAGS) $(GCC_LINT_FLAGS) + +# +# Support libraries +# + +dot = . + +LIBSUBDIR = lib +LIBSRC = $(srcdir)/$(LIBSUBDIR) + +LIBBUILD = ${BUILD_DIR}/${LIBSUBDIR} + +SUBDIR_INCLUDES = -I. @RL_INCLUDE@ -I$(topdir) -I$(topdir)/$(LIBSUBDIR) + +BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ + +# the bash library +# the library is a mix of functions that the C library does not provide on +# some platforms and general shell utility functions +SH_LIBSRC = $(LIBSRC)/sh +SH_LIBDIR = $(dot)/${LIBSUBDIR}/sh +SH_ABSSRC = ${topdir}/${SH_LIBSRC} + +SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \ + ${SH_LIBSRC}/getenv.c ${SH_LIBSRC}/oslib.c \ + ${SH_LIBSRC}/setlinebuf.c \ + ${SH_LIBSRC}/strcasecmp.c ${SH_LIBSRC}/strerror.c \ + ${SH_LIBSRC}/strtod.c ${SH_LIBSRC}/strtol.c \ + ${SH_LIBSRC}/strtoul.c ${SH_LIBSRC}/vprint.c \ + ${SH_LIBSRC}/itos.c ${SH_LIBSRC}/rename.c \ + ${SH_LIBSRC}/zread.c ${SH_LIBSRC}/zwrite.c \ + ${SH_LIBSRC}/shtty.c ${SH_LIBSRC}/inet_aton.c \ + ${SH_LIBSRC}/netopen.c ${SH_LIBSRC}/strpbrk.c \ + ${SH_LIBSRC}/timeval.c ${SH_LIBSRC}/clock.c \ + ${SH_LIBSRC}/makepath.c ${SH_LIBSRC}/pathcanon.c \ + ${SH_LIBSRC}/pathphys.c ${SH_LIBSRC}/stringlist.c \ + ${SH_LIBSRC}/stringvec.c ${SH_LIBSRC}/tmpfile.c \ + ${SH_LIBSRC}/spell.c ${SH_LIBSRC}/strtrans.c \ + ${SH_LIBSRC}/strindex.c ${SH_LIBSRC}/shquote.c \ + ${SH_LIBSRC}/snprintf.c ${SH_LIBSRC}/mailstat.c \ + ${SH_LIBSRC}/fmtulong.c ${SH_LIBSRC}/fmtullong.c \ + ${SH_LIBSRC}/strtoll.c ${SH_LIBSRC}/strtoull.c \ + ${SH_LIBSRC}/strtoimax.c ${SH_LIBSRC}/strtoumax.c \ + ${SH_LIBSRC}/fmtumax.c ${SH_LIBSRC}/netconn.c \ + ${SH_LIBSRC}/mktime.c ${SH_LIBSRC}/strftime.c \ + ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \ + ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c \ + ${SH_LIBSRC}/strnlen.c + +SHLIB_LIB = -lsh +SHLIB_LIBNAME = libsh.a +SHLIB_LIBRARY = ${SH_LIBDIR}/${SHLIB_LIBNAME} +SHLIB_LDFLAGS = -L${SH_LIBDIR} +SHLIB_DEP = ${SHLIB_LIBRARY} + +# we assume for now that readline source is being shipped with bash +RL_LIBSRC = $(LIBSRC)/readline +RL_LIBDOC = $(RL_LIBSRC)/doc +RL_LIBDIR = @RL_LIBDIR@ +RL_ABSSRC = ${topdir}/$(RL_LIBDIR) + +RL_INCLUDEDIR = @RL_INCLUDEDIR@ + +READLINE_LIB = @READLINE_LIB@ +READLINE_LIBRARY = $(RL_LIBDIR)/libreadline.a +READLINE_LDFLAGS = -L${RL_LIBDIR} +READLINE_DEP = @READLINE_DEP@ + +# The source, object and documentation of the GNU Readline library. +READLINE_SOURCE = $(RL_LIBSRC)/rldefs.h $(RL_LIBSRC)/rlconf.h \ + $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/tcap.h \ + $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/keymaps.h \ + $(RL_LIBSRC)/history.h $(RL_LIBSRC)/histlib.h \ + $(RL_LIBSRC)/posixstat.h $(RL_LIBSRC)/tilde.h \ + $(RL_LIBSRC)/rlstdc.h ${RL_LIBSRC}/xmalloc.h \ + $(RL_LIBSRC)/rlshell.h ${RL_LIBSRC}/rlprivate.h \ + $(RL_LIBSRC)/funmap.c $(RL_LIBSRC)/emacs_keymap.c \ + $(RL_LIBSRC)/search.c $(RL_LIBSRC)/vi_keymap.c \ + $(RL_LIBSRC)/keymaps.c $(RL_LIBSRC)/parens.c \ + $(RL_LIBSRC)/vi_mode.c $(RL_LIBSRC)/callback.c \ + $(RL_LIBSRC)/readline.c $(RL_LIBSRC)/tilde.c \ + $(RL_LIBSRC)/rltty.c $(RL_LIBSRC)/complete.c \ + $(RL_LIBSRC)/bind.c $(RL_LIBSRC)/isearch.c \ + $(RL_LIBSRC)/display.c $(RL_LIBSRC)/signals.c \ + $(RL_LIBSRC)/util.c $(RL_LIBSRC)/kill.c $(RL_LIBSRC)/text.c \ + $(RL_LIBSRC)/undo.c $(RL_LIBSRC)/macro.c \ + $(RL_LIBSRC)/terminal.c $(RL_LIBSRC)/nls.c \ + $(RL_LIBSRC)/input.c $(RL_LIBSRC)/xmalloc.c \ + $(RL_LIBSRC)/shell.c $(RL_LIBSRC)/savestring.c \ + $(RL_LIBSRC)/misc.c $(RL_LIBSRC)/mbutil.c $(RL_LIBSRC)/compat.c \ + $(RL_LIBSRC)/histexpand.c $(RL_LIBSRC)/history.c \ + $(RL_LIBSRC)/histsearch.c $(RL_LIBSRC)/histfile.c + +READLINE_OBJ = $(RL_LIBDIR)/readline.o $(RL_LIBDIR)/funmap.o \ + $(RL_LIBDIR)/parens.o $(RL_LIBDIR)/search.o \ + $(RL_LIBDIR)/keymaps.o $(RL_LIBDIR)/xmalloc.o \ + $(RL_LIBDIR)/rltty.o $(RL_LIBDIR)/complete.o \ + $(RL_LIBDIR)/bind.o $(RL_LIBDIR)/isearch.o \ + $(RL_LIBDIR)/display.o $(RL_LIBDIR)/signals.o \ + $(RL_LIBDIR)/tilde.o $(RL_LIBDIR)/util.o \ + $(RL_LIBDIR)/kill.o $(RL_LIBDIR)/undo.o $(RL_LIBDIR)/nls.o \ + $(RL_LIBDIR)/macro.o $(RL_LIBDIR)/input.o \ + $(RL_LIBDIR)/terminal.o $(RL_LIBDIR)/callback.o \ + $(RL_LIBDIR)/shell.o $(RL_LIBDIR)/savestring.o \ + $(RL_LIBDIR)/mbutil.o $(RL_LIBDIR)/compat.o \ + $(RL_LIBDIR)/history.o $(RL_LIBDIR)/histexpand.o \ + $(RL_LIBDIR)/histsearch.o $(RL_LIBDIR)/histfile.o + +HIST_LIBSRC = $(LIBSRC)/readline +HIST_LIBDIR = @HIST_LIBDIR@ +HIST_ABSSRC = ${topdir}/$(HIST_LIBDIR) + +HISTORY_LIB = @HISTORY_LIB@ +HISTORY_LIBRARY = $(HIST_LIBDIR)/libhistory.a +HISTORY_LDFLAGS = -L$(HIST_LIBDIR) +HISTORY_DEP = @HISTORY_DEP@ + +# The source, object and documentation of the history library. +HISTORY_SOURCE = $(HIST_LIBSRC)/history.c $(HIST_LIBSRC)/histexpand.c \ + $(HIST_LIBSRC)/histsearch.c $(HIST_LIBSRC)/histfile.c \ + $(HIST_LIBSRC)/shell.c \ + $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/histlib.h +HISTORY_OBJ = $(HIST_LIBDIR)/history.o $(HIST_LIBDIR)/histexpand.o \ + $(HIST_LIBDIR)/histsearch.o $(HIST_LIBDIR)/histfile.o \ + $(HIST_LIBDIR)/shell.o + +# You only need termcap (or curses) if you are linking with GNU Readline. +TERM_LIBSRC = $(LIBSRC)/termcap +TERM_LIBDIR = $(dot)/$(LIBSUBDIR)/termcap +TERM_ABSSRC = ${topdir}/$(TERM_LIBDIR) + +TERMCAP_LIB = @TERMCAP_LIB@ +TERMCAP_LIBRARY = $(TERM_LIBDIR)/libtermcap.a +TERMCAP_LDFLAGS = -L$(TERM_LIBDIR) +TERMCAP_DEP = @TERMCAP_DEP@ + +TERMCAP_SOURCE = $(TERM_LIBSRC)/termcap.c $(TERM_LIBSRC)/tparam.c +TERMCAP_OBJ = $(TERM_LIBDIR)/termcap.o $(TERM_LIBDIR)/tparam.o + +GLOB_LIBSRC = $(LIBSRC)/glob +GLOB_LIBDIR = $(dot)/$(LIBSUBDIR)/glob +GLOB_ABSSRC = ${topdir}/$(GLOB_LIBDIR) + +GLOB_LIB = -lglob +GLOB_LIBRARY = $(GLOB_LIBDIR)/libglob.a +GLOB_LDFLAGS = -L$(GLOB_LIBDIR) +GLOB_DEP = $(GLOB_LIBRARY) + +GLOB_SOURCE = $(GLOB_LIBSRC)/glob.c $(GLOB_LIBSRC)/strmatch.c \ + $(GLOB_LIBSRC)/smatch.c $(GLOB_LIBSRC)/xmbsrtowcs.c \ + $(GLOB_LIBSRC)/glob_loop.c $(GLOB_LIBSRC)/sm_loop.c \ + $(GLOB_LIBSRC)/glob.h $(GLOB_LIBSRC)/strmatch.h +GLOB_OBJ = $(GLOB_LIBDIR)/glob.o $(GLOB_LIBDIR)/strmatch.o \ + $(GLOB_LIBDIR)/smatch.o $(GLOB_LIBDIR)/xmbsrtowcs.o + +# The source, object and documentation for the GNU Tilde library. +TILDE_LIBSRC = $(LIBSRC)/tilde +TILDE_LIBDIR = $(dot)/$(LIBSUBDIR)/tilde +TILDE_ABSSRC = ${topdir}/$(TILDE_LIBDIR) + +TILDE_LIB = -ltilde +TILDE_LIBRARY = $(TILDE_LIBDIR)/libtilde.a +TILDE_LDFLAGS = -L$(TILDE_LIBDIR) +TILDE_DEP = $(TILDE_LIBRARY) + +TILDE_SOURCE = $(TILDE_LIBSRC)/tilde.c $(TILDE_LIBSRC)/tilde.h +TILDE_OBJ = $(TILDE_LIBDIR)/tilde.o + +# libintl +INTL_LIBSRC = $(LIBSRC)/intl +INTL_LIBDIR = $(dot)/$(LIBSUBDIR)/intl +INTL_ABSSRC = ${topdir}/$(INTL_LIB) +INTL_BUILDDIR = ${LIBBUILD}/intl + +INTL_LIB = @LIBINTL@ +INTL_LIBRARY = $(INTL_LIBDIR)/libintl.a +INTL_DEP = @INTL_DEP@ +INTL_INC = @INTL_INC@ + +LIBINTL_H = @LIBINTL_H@ + +# tests +LIBINTL = @LIBINTL@ +LTLIBINTL = @LTLIBINTL@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ + +# Our malloc. +MALLOC_TARGET = @MALLOC_TARGET@ + +# set to alloca.o if we are using the C alloca in lib/malloc +ALLOCA = @ALLOCA@ + +ALLOC_LIBSRC = $(LIBSRC)/malloc +ALLOC_LIBDIR = $(dot)/$(LIBSUBDIR)/malloc +ALLOC_ABSSRC = ${topdir}/$(ALLOC_LIBDIR) + +MALLOC_SRC = @MALLOC_SRC@ +MALLOC_OTHERSRC = ${ALLOC_LIBSRC}/trace.c ${ALLOC_LIBSRC}/stats.c \ + ${ALLOC_LIBSRC}/table.c ${ALLOC_LIBSRC}/watch.c +MALLOC_SOURCE = ${ALLOC_LIBSRC}/${MALLOC_SRC} ${MALLOC_OTHERSRC} +MALLOC_CFLAGS = -DRCHECK -Dbotch=programming_error ${MALLOC_DEBUG} + +MALLOC_LIB = @MALLOC_LIB@ +MALLOC_LIBRARY = @MALLOC_LIBRARY@ +MALLOC_LDFLAGS = @MALLOC_LDFLAGS@ +MALLOC_DEP = @MALLOC_DEP@ + +ALLOC_HEADERS = $(ALLOC_LIBSRC)/getpagesize.h $(ALLOC_LIBSRC)/shmalloc.h \ + $(ALLOC_LIBSRC)/imalloc.h $(ALLOC_LIBSRC)/mstats.h \ + $(ALLOC_LIBSRC)/table.h $(ALLOC_LIBSRC)/watch.h + +$(MALLOC_LIBRARY): ${MALLOC_SOURCE} ${ALLOC_HEADERS} config.h + @(cd $(ALLOC_LIBDIR) && \ + $(MAKE) $(MFLAGS) \ + MALLOC_CFLAGS="$(MALLOC_CFLAGS)" ${MALLOC_TARGET} ) || exit 1 + +BASHINCDIR = ${srcdir}/include +BASHINCFILES = $(BASHINCDIR)/posixstat.h $(BASHINCDIR)/ansi_stdlib.h \ + $(BASHINCDIR)/filecntl.h $(BASHINCDIR)/posixdir.h \ + $(BASHINCDIR)/memalloc.h $(BASHINCDIR)/stdc.h \ + $(BASHINCDIR)/posixjmp.h $(BASHINCDIR)/posixwait.h \ + $(BASHINCDIR)/posixtime.h $(BASHINCDIR)/systimes.h \ + $(BASHINCDIR)/unionwait.h $(BASHINCDIR)/maxpath.h \ + $(BASHINCDIR)/shtty.h $(BASHINCDIR)/typemax.h \ + $(BASHINCDIR)/ocache.h + +LIBRARIES = $(SHLIB_LIB) $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \ + $(TILDE_LIB) $(MALLOC_LIB) $(INTL_LIB) $(LOCAL_LIBS) + +LIBDEP = $(SHLIB_DEP) $(INTL_DEP) $(READLINE_DEP) $(HISTORY_DEP) $(TERMCAP_DEP) $(GLOB_DEP) \ + $(TILDE_DEP) $(MALLOC_DEP) + +LIBRARY_LDFLAGS = $(READLINE_LDFLAGS) $(HISTORY_LDFLAGS) $(GLOB_LDFLAGS) \ + $(TILDE_LDFLAGS) $(MALLOC_LDFLAGS) $(SHLIB_LDFLAGS) + +# +# The shell itself +# + +# The main source code for the Bourne Again SHell. +CSOURCES = shell.c eval.c parse.y general.c make_cmd.c print_cmd.c y.tab.c \ + dispose_cmd.c execute_cmd.c variables.c $(GLOBC) version.c \ + expr.c copy_cmd.c flags.c subst.c hashcmd.c hashlib.c mailcheck.c \ + test.c trap.c alias.c jobs.c nojobs.c $(ALLOC_FILES) braces.c \ + input.c bashhist.c array.c arrayfunc.c sig.c pathexp.c \ + unwind_prot.c siglist.c bashline.c bracecomp.c error.c \ + list.c stringlib.c locale.c findcmd.c redir.c \ + pcomplete.c pcomplib.c syntax.c xmalloc.c + +HSOURCES = shell.h flags.h trap.h hashcmd.h hashlib.h jobs.h builtins.h \ + general.h variables.h config.h $(ALLOC_HEADERS) alias.h \ + quit.h unwind_prot.h syntax.h ${GRAM_H} \ + command.h input.h error.h bashansi.h dispose_cmd.h make_cmd.h \ + subst.h externs.h siglist.h bashhist.h bashline.h bashtypes.h \ + array.h arrayfunc.h sig.h mailcheck.h bashintl.h bashjmp.h \ + execute_cmd.h parser.h pathexp.h pathnames.h pcomplete.h \ + $(BASHINCFILES) + +SOURCES = $(CSOURCES) $(HSOURCES) $(BUILTIN_DEFS) + +# header files chosen based on running of configure +SIGNAMES_H = @SIGNAMES_H@ + +# object files chosen based on running of configure +JOBS_O = @JOBS_O@ +SIGLIST_O = @SIGLIST_O@ + +# Matching object files. +OBJECTS = shell.o eval.o y.tab.o general.o make_cmd.o print_cmd.o $(GLOBO) \ + dispose_cmd.o execute_cmd.o variables.o copy_cmd.o error.o \ + expr.o flags.o $(JOBS_O) subst.o hashcmd.o hashlib.o mailcheck.o \ + trap.o input.o unwind_prot.o pathexp.o sig.o test.o version.o \ + alias.o array.o arrayfunc.o braces.o bracecomp.o bashhist.o \ + bashline.o $(SIGLIST_O) list.o stringlib.o locale.o findcmd.o redir.o \ + pcomplete.o pcomplib.o syntax.o xmalloc.o + +# Where the source code of the shell builtins resides. +BUILTIN_SRCDIR=$(srcdir)/builtins +DEFSRC=$(BUILTIN_SRCDIR) +BUILTIN_ABSSRC=${topdir}/builtins +DEFDIR = $(dot)/builtins +DEBUGGER_DIR = $(dot)/debugger + +BUILTIN_DEFS = $(DEFSRC)/alias.def $(DEFSRC)/bind.def $(DEFSRC)/break.def \ + $(DEFSRC)/builtin.def $(DEFSRC)/cd.def $(DEFSRC)/colon.def \ + $(DEFSRC)/command.def ${DEFSRC}/complete.def \ + $(DEFSRC)/caller.def $(DEFSRC)/declare.def \ + $(DEFSRC)/echo.def $(DEFSRC)/enable.def $(DEFSRC)/eval.def \ + $(DEFSRC)/exec.def $(DEFSRC)/exit.def $(DEFSRC)/fc.def \ + $(DEFSRC)/fg_bg.def $(DEFSRC)/hash.def $(DEFSRC)/help.def \ + $(DEFSRC)/history.def $(DEFSRC)/jobs.def $(DEFSRC)/kill.def \ + $(DEFSRC)/let.def $(DEFSRC)/read.def $(DEFSRC)/return.def \ + $(DEFSRC)/set.def $(DEFSRC)/setattr.def $(DEFSRC)/shift.def \ + $(DEFSRC)/source.def $(DEFSRC)/suspend.def $(DEFSRC)/test.def \ + $(DEFSRC)/times.def $(DEFSRC)/trap.def $(DEFSRC)/type.def \ + $(DEFSRC)/ulimit.def $(DEFSRC)/umask.def $(DEFSRC)/wait.def \ + $(DEFSRC)/getopts.def $(DEFSRC)/reserved.def \ + $(DEFSRC)/pushd.def $(DEFSRC)/shopt.def $(DEFSRC)/printf.def +BUILTIN_C_SRC = $(DEFSRC)/mkbuiltins.c $(DEFSRC)/common.c \ + $(DEFSRC)/evalstring.c $(DEFSRC)/evalfile.c \ + $(DEFSRC)/bashgetopt.c $(GETOPT_SOURCE) +BUILTIN_C_OBJ = $(DEFDIR)/common.o $(DEFDIR)/evalstring.o \ + $(DEFDIR)/evalfile.o $(DEFDIR)/bashgetopt.o +BUILTIN_OBJS = $(DEFDIR)/alias.o $(DEFDIR)/bind.o $(DEFDIR)/break.o \ + $(DEFDIR)/builtin.o $(DEFDIR)/cd.o $(DEFDIR)/colon.o \ + $(DEFDIR)/command.o $(DEFDIR)/caller.o $(DEFDIR)/declare.o \ + $(DEFDIR)/echo.o $(DEFDIR)/enable.o $(DEFDIR)/eval.o \ + $(DEFDIR)/exec.o $(DEFDIR)/exit.o $(DEFDIR)/fc.o \ + $(DEFDIR)/fg_bg.o $(DEFDIR)/hash.o $(DEFDIR)/help.o \ + $(DEFDIR)/history.o $(DEFDIR)/jobs.o $(DEFDIR)/kill.o \ + $(DEFDIR)/let.o $(DEFDIR)/pushd.o $(DEFDIR)/read.o \ + $(DEFDIR)/return.o $(DEFDIR)/shopt.o $(DEFDIR)/printf.o \ + $(DEFDIR)/set.o $(DEFDIR)/setattr.o $(DEFDIR)/shift.o \ + $(DEFDIR)/source.o $(DEFDIR)/suspend.o $(DEFDIR)/test.o \ + $(DEFDIR)/times.o $(DEFDIR)/trap.o $(DEFDIR)/type.o \ + $(DEFDIR)/ulimit.o $(DEFDIR)/umask.o $(DEFDIR)/wait.o \ + $(DEFDIR)/getopts.o $(BUILTIN_C_OBJ) +GETOPT_SOURCE = $(DEFSRC)/getopt.c $(DEFSRC)/getopt.h +PSIZE_SOURCE = $(DEFSRC)/psize.sh $(DEFSRC)/psize.c + +BUILTINS_LIBRARY = $(DEFDIR)/libbuiltins.a +BUILTINS_LIB = -lbuiltins +BUILTINS_LDFLAGS = -L$(DEFDIR) +BUILTINS_DEP = $(BUILTINS_LIBRARY) + +# Documentation for the shell. +DOCSRC = $(srcdir)/doc +DOCDIR = $(dot)/doc + +# Translations and other i18n support files +PO_SRC = $(srcdir)/po/ +PO_DIR = $(dot)/po/ + +SIGNAMES_SUPPORT = $(SUPPORT_SRC)mksignames.c + +SUPPORT_SRC = $(srcdir)/support/ +SDIR = $(dot)/support/ + +TESTS_SUPPORT = recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT) +CREATED_SUPPORT = signames.h recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT) \ + tests/recho$(EXEEXT) tests/zecho$(EXEEXT) \ + tests/printenv$(EXEEXT) mksignames$(EXEEXT) lsignames.h \ + mksyntax${EXEEXT} syntax.c $(VERSPROG) $(VERSOBJ) \ + buildversion.o +CREATED_CONFIGURE = config.h config.cache config.status config.log \ + stamp-h po/POTFILES +CREATED_MAKEFILES = Makefile builtins/Makefile doc/Makefile \ + lib/readline/Makefile lib/glob/Makefile \ + lib/sh/Makefile lib/tilde/Makefile lib/malloc/Makefile \ + lib/termcap/Makefile examples/loadables/Makefile \ + examples/loadables/perl/Makefile support/Makefile \ + lib/intl/Makefile po/Makefile po/Makefile.in + +# Keep GNU Make from exporting the entire environment for small machines. +.NOEXPORT: + +.made: $(Program) bashbug + @echo "$(Program) last made for a $(Machine) running $(OS)" >.made + +$(Program): .build $(OBJECTS) $(BUILTINS_DEP) $(LIBDEP) + $(RM) $@ + $(PURIFY) $(CC) $(BUILTINS_LDFLAGS) $(LIBRARY_LDFLAGS) $(LDFLAGS) -o $(Program) $(OBJECTS) $(LIBS) + ls -l $(Program) + size $(Program) + +.build: $(SOURCES) config.h Makefile version.h $(VERSPROG) + @echo + @echo " ***********************************************************" + @echo " * *" + @echo " * `$(BUILD_DIR)/$(VERSPROG) -l`" + @echo " * *" + @echo " ***********************************************************" + @echo + +bashbug: $(SUPPORT_SRC)bashbug.sh config.h Makefile $(VERSPROG) + @sed -e "s%!MACHINE!%$(Machine)%" -e "s%!OS!%$(OS)%" \ + -e "s%!CFLAGS!%$(CCFLAGS)%" -e "s%!CC!%$(CC)%" \ + -e "s%!RELEASE!%$(Version)%" -e "s%!PATCHLEVEL!%$(PatchLevel)%" \ + -e "s%!MACHTYPE!%$(MACHTYPE)%" -e "s%!RELSTATUS!%$(RELSTATUS)%" \ + $(SUPPORT_SRC)bashbug.sh > $@ + @chmod a+rx bashbug + +strip: $(Program) .made + strip $(Program) + ls -l $(Program) + size $(Program) + +lint: + ${MAKE} ${MFLAGS} CFLAGS='${GCC_LINT_FLAGS}' .made + +version.h: $(SOURCES) config.h Makefile + $(SHELL) $(SUPPORT_SRC)mkversion.sh -b -S ${topdir} -s $(RELSTATUS) -d $(Version) -o newversion.h \ + && mv newversion.h version.h + +bashversion$(EXEEXT): patchlevel.h conftypes.h version.h buildversion.o $(SUPPORT_SRC)bashversion.c + $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)bashversion.c buildversion.o + +buildversion.o: version.h conftypes.h patchlevel.h $(srcdir)/version.c + $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -DBUILDTOOL -c -o $@ $(srcdir)/version.c + +# old rules +GRAM_H = parser-built +y.tab.o: y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h +${GRAM_H}: y.tab.h + @-if test -f y.tab.h ; then \ + cmp -s $@ y.tab.h 2>/dev/null || cp -p y.tab.h $@; \ + fi +y.tab.c y.tab.h: parse.y +# -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi + $(YACC) -d $(srcdir)/parse.y + touch parser-built +# -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; else cp -p y.tab.h ${GRAM_H}; fi + +# experimental new rules - work with GNU make but not BSD (or OSF) make +#y.tab.o: y.tab.c y.tab.h +#y.tab.c y.tab.h: parse.y command.h ${BASHINCDIR}/stdc.h input.h +# -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi +# $(YACC) -d $(srcdir)/parse.y +# -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi + +$(READLINE_LIBRARY): config.h $(READLINE_SOURCE) + @echo making $@ in ${RL_LIBDIR} + @( { test "${RL_LIBDIR}" = "${libdir}" && exit 0; } || \ + cd ${RL_LIBDIR} && $(MAKE) $(MFLAGS) libreadline.a) || exit 1 + +$(HISTORY_LIBRARY): config.h $(HISTORY_SOURCE) + @echo making $@ in ${HIST_LIBDIR} + @( { test "${HIST_LIBDIR}" = "${libdir}" && exit 0; } || \ + cd ${HIST_LIBDIR} && $(MAKE) $(MFLAGS) libhistory.a) || exit 1 + +$(GLOB_LIBRARY): config.h $(GLOB_SOURCE) + @echo making $@ in ${GLOB_LIBDIR} + @(cd ${GLOB_LIBDIR} && \ + $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libglob.a) || exit 1 + +$(TILDE_LIBRARY): config.h $(TILDE_SOURCE) + @echo making $@ in ${TILDE_LIBDIR} + @(cd ${TILDE_LIBDIR} && \ + $(MAKE) $(MFLAGS) libtilde.a) || exit 1 + +$(TERMCAP_LIBRARY): config.h ${TERMCAP_SOURCE} + @echo making $@ in ${TERM_LIBDIR} + @(cd ${TERM_LIBDIR} && \ + $(MAKE) $(MFLAGS) libtermcap.a) || exit 1 + +$(SHLIB_LIBRARY): config.h ${SHLIB_SOURCE} + @echo making $@ in ${SH_LIBDIR} + @(cd ${SH_LIBDIR} && \ + $(MAKE) $(MFLAGS) DEBUG=${DEBUG} ${SHLIB_LIBNAME}) || exit 1 + +${INTL_LIBRARY}: config.h ${INTL_LIBDIR}/Makefile + @echo making $@ in ${INTL_LIBDIR} + @(cd ${INTL_LIBDIR} && \ + $(MAKE) $(MFLAGS) all) || exit 1 + +${LIBINTL_H}: ${INTL_LIBRARY} + +mksignames$(EXEEXT): $(SUPPORT_SRC)mksignames.c + $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)mksignames.c + +mksyntax$(EXEEXT): ${srcdir}/mksyntax.c config.h syntax.h ${BASHINCDIR}/chartypes.h + ${CC_FOR_BUILD} ${CCFLAGS_FOR_BUILD} -o $@ ${srcdir}/mksyntax.c + +# make a list of signals for the local system -- this is done when we're +# *not* cross-compiling +lsignames.h: mksignames$(EXEEXT) + $(RM) $@ + ./mksignames $@ + +# copy the correct signames header file to signames.h +signames.h: $(SIGNAMES_H) + -if cmp -s $(SIGNAMES_H) $@ ; then :; else $(RM) $@ ; $(CP) $(SIGNAMES_H) $@ ; fi + +syntax.c: mksyntax${EXEEXT} $(srcdir)/syntax.h + $(RM) $@ + ./mksyntax -o $@ + +$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h version.h + @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libbuiltins.a ) || exit 1 + +# these require special rules to circumvent make builtin rules +${DEFDIR}/common.o: $(BUILTIN_SRCDIR)/common.c + @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} common.o) || exit 1 + +${DEFDIR}/bashgetopt.o: $(BUILTIN_SRCDIR)/bashgetopt.c + @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} bashgetopt.o) || exit 1 + +${DEFDIR}/builtext.h: $(BUILTIN_DEFS) + @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) builtext.h ) || exit 1 + +# For the justification of the following Makefile rules, see node +# `Automatic Remaking' in GNU Autoconf documentation. + +Makefile makefile: config.status $(srcdir)/Makefile.in + CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status + +pathnames.h: config.status $(srcdir)/Makefile.in + CONFIG_HEADERS= $(SHELL) ./config.status + +Makefiles makefiles: config.status $(srcdir)/Makefile.in + @for mf in $(CREATED_MAKEFILES); do \ + CONFIG_FILES=$$mf CONFIG_HEADERS= $(SHELL) ./config.status ; \ + done + +config.h: stamp-h + +stamp-h: config.status $(srcdir)/config.h.in $(srcdir)/config-top.h $(srcdir)/config-bot.h + CONFIG_FILES= CONFIG_HEADERS=config.h $(SHELL) ./config.status + +config.status: $(srcdir)/configure + $(SHELL) ./config.status --recheck + +# comment out for distribution +$(srcdir)/configure: $(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/config.h.in + cd $(srcdir) && autoconf + +# for chet +reconfig: force + sh $(srcdir)/configure + +#newversion: mkversion +# $(RM) .build +# ./mkversion -dir $(srcdir) -dist +# mv -f newversion.h version.h +# $(MAKE) -f $(srcdir)/Makefile $(MFLAGS) srcdir=$(srcdir) + +doc documentation: force + @(cd $(DOCDIR) ; $(MAKE) $(MFLAGS) ) + +info dvi ps: force + @(cd $(DOCDIR) ; $(MAKE) $(MFLAGS) CFLAGS='$(CCFLAGS)' $@ ) + +force: + +tags: $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) + etags $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) + +TAGS: $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) + ctags -x $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) > $@ + +# Targets that actually do things not part of the build + +installdirs: + @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(bindir) + @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(man1dir) + @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(infodir) + -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) + +install: .made installdirs + $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program) + $(INSTALL_SCRIPT) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug + -( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \ + man1dir=$(man1dir) man1ext=$(man1ext) \ + man3dir=$(man3dir) man3ext=$(man3ext) \ + infodir=$(infodir) htmldir=$(htmldir) DESTDIR=$(DESTDIR) $@ ) + -( cd $(DEFDIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) + -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) + +install-strip: + $(MAKE) $(MFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \ + prefix=${prefix} exec_prefix=${exec_prefix} \ + DESTDIR=$(DESTDIR) install + +uninstall: .made + $(RM) $(DESTDIR)$(bindir)/$(Program) $(DESTDIR)$(bindir)/bashbug + -( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \ + man1dir=$(man1dir) man1ext=$(man1ext) \ + man3dir=$(man3dir) man3ext=$(man3ext) \ + infodir=$(infodir) htmldir=$(htmldir) DESTDIR=$(DESTDIR) $@ ) + -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) + +.PHONY: basic-clean clean realclean maintainer-clean distclean mostlyclean maybe-clean + +LIB_SUBDIRS = ${RL_LIBDIR} ${HIST_LIBDIR} ${TERM_LIBDIR} ${GLOB_LIBDIR} \ + ${INTL_LIBDIR} ${TILDE_LIBDIR} ${ALLOC_LIBDIR} ${SH_LIBDIR} + +basic-clean: + $(RM) $(OBJECTS) $(Program) bashbug + $(RM) .build .made version.h pathnames.h + +clean: basic-clean + ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ ) + ( cd builtins && $(MAKE) $(MFLAGS) $@ ) + -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ ) + -for libdir in ${LIB_SUBDIRS}; do \ + (cd $$libdir && test -f Makefile && $(MAKE) $(MFLAGS) $@) ;\ + done + -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) + $(RM) $(CREATED_SUPPORT) + +mostlyclean: basic-clean + ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ ) + ( cd builtins && $(MAKE) $(MFLAGS) $@ ) + -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ ) + -for libdir in ${LIB_SUBDIRS}; do \ + (cd $$libdir && test -f Makefile && $(MAKE) $(MFLAGS) $@) ;\ + done + -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) + +distclean: basic-clean maybe-clean + ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ ) + ( cd builtins && $(MAKE) $(MFLAGS) $@ ) + -( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ ) + -for libdir in ${LIB_SUBDIRS}; do \ + (cd $$libdir && test -f Makefile && $(MAKE) $(MFLAGS) $@) ;\ + done + -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) + $(RM) $(CREATED_CONFIGURE) tags TAGS + $(RM) $(CREATED_SUPPORT) Makefile $(CREATED_MAKEFILES) + +maintainer-clean: basic-clean + @echo This command is intended for maintainers to use. + @echo It deletes files that may require special tools to rebuild. + $(RM) y.tab.c y.tab.h parser-built tags TAGS + ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ ) + ( cd builtins && $(MAKE) $(MFLAGS) $@ ) + ( cd $(SDIR) && $(MAKE) $(MFLAGS) $@ ) + -for libdir in ${LIB_SUBDIRS}; do \ + (cd $$libdir && test -f Makefile && $(MAKE) $(MFLAGS) $@) ;\ + done + -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) + $(RM) $(CREATED_CONFIGURE) $(CREATED_MAKEFILES) + $(RM) $(CREATED_SUPPORT) Makefile + +maybe-clean: + -if test "X$(topdir)" != "X$(BUILD_DIR)" ; then \ + $(RM) parser-built y.tab.c y.tab.h ; \ + fi + +recho$(EXEEXT): $(SUPPORT_SRC)recho.c + @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)recho.c + +zecho$(EXEEXT): $(SUPPORT_SRC)zecho.c + @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)zecho.c + +printenv$(EXEEXT): $(SUPPORT_SRC)printenv.c + @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.c + +test tests check: force $(Program) $(TESTS_SUPPORT) + @-test -d tests || mkdir tests + @cp $(TESTS_SUPPORT) tests + @( cd $(srcdir)/tests && \ + PATH=$$PATH:$(BUILD_DIR)/tests THIS_SH=$(THIS_SH) $(SHELL) ${TESTSCRIPT} ) + +symlinks: + $(SHELL) $(SUPPORT_SRC)fixlinks -s $(srcdir) + +dist: force + @echo Bash distributions are created using $(srcdir)/support/mkdist. + @echo Here is a sample of the necessary commands: + @echo $(Program) $(srcdir)/support/mkdist -m $(srcdir)/MANIFEST -s $(srcdir) -r ${PACKAGE} $(PACKAGE_VERSION) + @echo tar cf $(PACKAGE)-${PACKAGE_VERSION}.tar ${PACKAGE}-$(PACKAGE_VERSION) + @echo gzip $(PACKAGE)-$(PACKAGE_VERSION).tar + +depend: depends + +depends: force + $(Program) $(SUPPORT_SRC)mkdep -c ${CC} -- ${CCFLAGS} ${CSOURCES} + +#### PRIVATE TARGETS #### +hashtest: hashlib.c + $(CC) -DTEST_HASHING $(CCFLAGS) -o $@ $(srcdir)/hashlib.c + +############################ DEPENDENCIES ############################### + +# Files that depend on the definitions in config-top.h, which are not meant +# to be changed +shell.o: config-top.h +input.o: config-top.h +y.tab.o: config-top.h +jobs.o: config-top.h +nojobs.o: config-top.h +execute_cmd.o: config-top.h +variables.o: config-top.h +builtins/command.o: config-top.h +builtins/common.o: config-top.h +builtins/break.o: config-top.h +builtins/echo.o: config-top.h +builtins/evalstring.o: config-top.h +builtins/exit.o: config-top.h +builtins/kill.o: config-top.h + +# shell basics +copy_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +copy_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +copy_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +copy_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h +dispose_cmd.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h +dispose_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h +dispose_cmd.o: error.h general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +dispose_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +dispose_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h +dispose_cmd.o: ${BASHINCDIR}/ocache.h +error.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h flags.h ${BASHINCDIR}/stdc.h error.h +error.o: command.h general.h xmalloc.h externs.h input.h bashhist.h +error.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +error.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +error.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +error.o: make_cmd.h subst.h sig.h pathnames.h externs.h +error.o: input.h execute_cmd.h +eval.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h trap.h flags.h ${DEFSRC}/common.h +eval.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +eval.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +eval.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +eval.o: make_cmd.h subst.h sig.h pathnames.h externs.h +eval.o: input.h execute_cmd.h +execute_cmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +execute_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +execute_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +execute_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +execute_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h +execute_cmd.o: ${BASHINCDIR}/memalloc.h ${GRAM_H} flags.h builtins.h jobs.h quit.h siglist.h +execute_cmd.o: execute_cmd.h findcmd.h redir.h trap.h test.h pathexp.h +execute_cmd.o: $(DEFSRC)/common.h ${DEFDIR}/builtext.h ${GLOB_LIBSRC}/strmatch.h +execute_cmd.o: ${BASHINCDIR}/posixtime.h ${BASHINCDIR}/chartypes.h +expr.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +expr.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +expr.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +expr.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +expr.o: make_cmd.h subst.h sig.h pathnames.h externs.h +expr.o: ${BASHINCDIR}/chartypes.h +findcmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h +findcmd.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/memalloc.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h +findcmd.o: ${BASHINCDIR}/stdc.h error.h general.h xmalloc.h variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h +findcmd.o: dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h externs.h +findcmd.o: flags.h hashlib.h pathexp.h hashcmd.h +findcmd.o: ${BASHINCDIR}/chartypes.h +flags.o: config.h flags.h +flags.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +flags.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +flags.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +flags.o: make_cmd.h subst.h sig.h pathnames.h externs.h bashhist.h +general.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +general.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +general.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +general.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +general.o: make_cmd.h subst.h sig.h pathnames.h externs.h +general.o: ${BASHINCDIR}/maxpath.h ${BASHINCDIR}/posixtime.h +general.o: ${BASHINCDIR}/chartypes.h +hashcmd.o: config.h ${BASHINCDIR}/posixstat.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +hashcmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +hashcmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashcmd.h +hashcmd.o: execute_cmd.h findcmd.h ${BASHINCDIR}/stdc.h hashlib.h +hashlib.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +hashlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +hashlib.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +hashlib.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +hashlib.o: make_cmd.h subst.h sig.h pathnames.h externs.h +input.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +input.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h input.h error.h externs.h +list.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +list.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +list.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +list.o: make_cmd.h subst.h sig.h pathnames.h externs.h +locale.o: config.h bashtypes.h bashintl.h ${LIBINTL_H} bashansi.h ${BASHINCDIR}/ansi_stdlib.h +locale.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +locale.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +locale.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +locale.o: make_cmd.h subst.h sig.h pathnames.h externs.h +locale.o: ${BASHINCDIR}/chartypes.h +mailcheck.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +mailcheck.o: ${BASHINCDIR}/posixtime.h +mailcheck.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +mailcheck.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +mailcheck.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +mailcheck.o: make_cmd.h subst.h sig.h pathnames.h externs.h +mailcheck.o: execute_cmd.h mailcheck.h +make_cmd.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h bashansi.h +make_cmd.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h error.h flags.h make_cmd.h +make_cmd.o: variables.h arrayfunc.h conftypes.h array.h hashlib.h subst.h input.h externs.h +make_cmd.o: jobs.h quit.h siglist.h syntax.h dispose_cmd.h +make_cmd.o: ${BASHINCDIR}/shmbutil.h ${BASHINCDIR}/ocache.h +y.tab.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/memalloc.h +y.tab.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +y.tab.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +y.tab.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +y.tab.o: make_cmd.h subst.h sig.h pathnames.h externs.h test.h +y.tab.o: trap.h flags.h parser.h input.h mailcheck.h $(DEFSRC)/common.h +y.tab.o: $(DEFDIR)/builtext.h bashline.h bashhist.h jobs.h siglist.h alias.h +pathexp.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +pathexp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +pathexp.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +pathexp.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +pathexp.o: make_cmd.h subst.h sig.h pathnames.h externs.h +pathexp.o: pathexp.h flags.h +pathexp.o: $(GLOB_LIBSRC)/glob.h $(GLOB_LIBSRC)/strmatch.h +pathexp.o: ${BASHINCDIR}/shmbutil.h +print_cmd.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +print_cmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +print_cmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +print_cmd.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +print_cmd.o: make_cmd.h subst.h sig.h pathnames.h externs.h +print_cmd.o: ${GRAM_H} $(DEFSRC)/common.h +redir.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/filecntl.h +redir.o: ${BASHINCDIR}/memalloc.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +redir.o: general.h xmalloc.h variables.h arrayfunc.h conftypes.h array.h hashlib.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h +redir.o: dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h externs.h +redir.o: flags.h execute_cmd.h redir.h input.h +shell.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/filecntl.h +shell.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +shell.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +shell.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +shell.o: make_cmd.h subst.h sig.h pathnames.h externs.h +shell.o: flags.h trap.h mailcheck.h builtins.h $(DEFSRC)/common.h +shell.o: jobs.h siglist.h input.h execute_cmd.h findcmd.h bashhist.h +shell.o: ${GLOB_LIBSRC}/strmatch.h ${BASHINCDIR}/posixtime.h +sig.o: config.h bashtypes.h +sig.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +sig.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +sig.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +sig.o: make_cmd.h subst.h sig.h pathnames.h externs.h +sig.o: jobs.h siglist.h trap.h $(DEFSRC)/common.h bashline.h bashhist.h +siglist.o: config.h bashtypes.h siglist.h trap.h +stringlib.o: bashtypes.h ${BASHINCDIR}/chartypes.h +stringlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +stringlib.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +stringlib.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +stringlib.o: make_cmd.h subst.h sig.h pathnames.h externs.h +stringlib.o: ${GLOB_LIBSRC}/glob.h ${GLOB_LIBSRC}/strmatch.h +subst.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/posixstat.h +subst.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +subst.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +subst.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +subst.o: make_cmd.h subst.h sig.h pathnames.h externs.h +subst.o: flags.h jobs.h siglist.h execute_cmd.h ${BASHINCDIR}/filecntl.h trap.h pathexp.h +subst.o: mailcheck.h input.h $(DEFSRC)/getopt.h $(DEFSRC)/common.h +subst.o: bashline.h bashhist.h ${GLOB_LIBSRC}/strmatch.h +subst.o: ${BASHINCDIR}/chartypes.h +subst.o: ${BASHINCDIR}/shmbutil.h +test.o: bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h +test.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +test.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +test.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +test.o: make_cmd.h subst.h sig.h pathnames.h externs.h test.h +test.o: ${DEFSRC}/common.h +trap.o: config.h bashtypes.h trap.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +trap.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +trap.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +trap.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +trap.o: make_cmd.h subst.h sig.h pathnames.h externs.h +trap.o: signames.h $(DEFSRC)/common.h +trap.o: ${DEFDIR}/builtext.h +unwind_prot.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h command.h ${BASHINCDIR}/stdc.h +unwind_prot.o: general.h xmalloc.h unwind_prot.h quit.h sig.h +variables.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +variables.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +variables.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +variables.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +variables.o: make_cmd.h subst.h sig.h pathnames.h externs.h +variables.o: flags.h execute_cmd.h mailcheck.h input.h $(DEFSRC)/common.h +variables.o: findcmd.h bashhist.h hashcmd.h pathexp.h +variables.o: pcomplete.h ${BASHINCDIR}/chartypes.h +variables.o: ${BASHINCDIR}/posixtime.h +version.o: conftypes.h patchlevel.h version.h +xmalloc.o: config.h bashtypes.h ${BASHINCDIR}/ansi_stdlib.h error.h + +# job control + +jobs.o: config.h bashtypes.h trap.h ${BASHINCDIR}/filecntl.h input.h ${BASHINCDIR}/shtty.h +jobs.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h +jobs.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +jobs.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +jobs.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +jobs.o: make_cmd.h subst.h sig.h pathnames.h externs.h +jobs.o: jobs.h flags.h $(DEFSRC)/common.h $(DEFDIR)/builtext.h +jobs.o: ${BASHINCDIR}/posixwait.h ${BASHINCDIR}/unionwait.h +jobs.o: ${BASHINCDIR}/posixtime.h +nojobs.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h bashjmp.h ${BASHINCDIR}/posixjmp.h +nojobs.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h jobs.h quit.h siglist.h externs.h +nojobs.o: sig.h error.h ${BASHINCDIR}/shtty.h input.h + +# shell features that may be compiled in + +array.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +array.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +array.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +array.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +array.o: make_cmd.h subst.h sig.h pathnames.h externs.h +array.o: $(DEFSRC)/common.h +arrayfunc.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +arrayfunc.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +arrayfunc.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +arrayfunc.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +arrayfunc.o: make_cmd.h subst.h sig.h pathnames.h externs.h +arrayfunc.o: $(DEFSRC)/common.h +arrayfunc.o: ${BASHINCDIR}/shmbutil.h +braces.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +braces.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +braces.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +braces.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +braces.o: make_cmd.h subst.h sig.h pathnames.h externs.h +braces.o: ${BASHINCDIR}/shmbutil.h +alias.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h command.h ${BASHINCDIR}/stdc.h +alias.o: general.h xmalloc.h bashtypes.h externs.h alias.h +alias.o: pcomplete.h +alias.o: ${BASHINCDIR}/chartypes.h + +pcomplib.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h bashtypes.h +pcomplib.o: ${BASHINCDIR}/stdc.h hashlib.h pcomplete.h shell.h syntax.h +pcomplib.o: bashjmp.h command.h general.h xmalloc.h error.h variables.h arrayfunc.h conftypes.h quit.h +pcomplib.o: unwind_prot.h dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h +pcomplib.o: externs.h ${BASHINCDIR}/maxpath.h + +pcomplete.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h bashtypes.h +pcomplete.o: ${BASHINCDIR}/stdc.h hashlib.h pcomplete.h shell.h syntax.h +pcomplete.o: bashjmp.h command.h general.h xmalloc.h error.h variables.h arrayfunc.h conftypes.h quit.h +pcomplete.o: unwind_prot.h dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h +pcomplete.o: externs.h ${BASHINCDIR}/maxpath.h execute_cmd.h + +# library support files + +bashhist.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/posixstat.h +bashhist.o: ${BASHINCDIR}/filecntl.h +bashhist.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +bashhist.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +bashhist.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +bashhist.o: make_cmd.h subst.h sig.h pathnames.h externs.h +bashhist.o: flags.h input.h parser.h pathexp.h $(DEFSRC)/common.h bashline.h +bashhist.o: $(GLOB_LIBSRC)/strmatch.h +bashline.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +bashline.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +bashline.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +bashline.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +bashline.o: make_cmd.h subst.h sig.h pathnames.h externs.h +bashline.o: builtins.h bashhist.h bashline.h execute_cmd.h findcmd.h pathexp.h +bashline.o: $(DEFSRC)/common.h $(GLOB_LIBSRC)/glob.h alias.h +bashline.o: pcomplete.h ${BASHINCDIR}/chartypes.h input.h +bracecomp.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +bracecomp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h +bracecomp.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +bracecomp.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +bracecomp.o: make_cmd.h subst.h sig.h pathnames.h externs.h +bracecomp.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h hashlib.h builtins.h general.h xmalloc.h +bracecomp.o: quit.h alias.h config.h variables.h arrayfunc.h conftypes.h +bracecomp.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h + +# library dependencies + +bashline.o: $(RL_LIBSRC)/rlconf.h +bashline.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h +bashline.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h +bracecomp.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h +bracecomp.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h +y.tab.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h +y.tab.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h +subst.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/chardefs.h +subst.o: $(RL_LIBSRC)/readline.h $(RL_LIBSRC)/rlstdc.h + +shell.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h +subst.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h +bashline.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h +bashhist.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h +y.tab.o: $(HIST_LIBSRC)/history.h $(HIST_LIBSRC)/rlstdc.h + +execute_cmd.o: $(TILDE_LIBSRC)/tilde.h +general.o: $(TILDE_LIBSRC)/tilde.h +mailcheck.o: $(TILDE_LIBSRC)/tilde.h +shell.o: $(TILDE_LIBSRC)/tilde.h +subst.o: $(TILDE_LIBSRC)/tilde.h +variables.o: $(TILDE_LIBSRC)/tilde.h + +# libintl dependencies +arrayfunc.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +bashhist.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +bashline.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +braces.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +error.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +eval.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +execute_cmd.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +expr.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +general.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +input.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +jobs.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +mailcheck.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +make_cmd.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +nojobs.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +parse.y: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +pcomplete.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +pcomplib.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +print_cmd.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +redir.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +shell.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +sig.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +siglist.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +subst.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +test.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +trap.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +variables.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +version.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +xmalloc.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + +# XXX - dependencies checked through here + +# builtin c sources +builtins/bashgetopt.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +builtins/bashgetopt.o: shell.h syntax.h config.h bashjmp.h command.h general.h xmalloc.h error.h +builtins/bashgetopt.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +builtins/bashgetopt.o: make_cmd.h subst.h sig.h pathnames.h externs.h +builtins/bashgetopt.o: $(DEFSRC)/common.h +builtins/bashgetopt.o: ${BASHINCDIR}/chartypes.h +builtins/common.o: bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +builtins/common.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h +builtins/common.o: ${BASHINCDIR}/memalloc.h variables.h arrayfunc.h conftypes.h input.h siglist.h +builtins/common.o: quit.h unwind_prot.h ${BASHINCDIR}/maxpath.h jobs.h builtins.h +builtins/common.o: dispose_cmd.h make_cmd.h subst.h externs.h bashhist.h +builtins/common.o: execute_cmd.h ${BASHINCDIR}/stdc.h general.h xmalloc.h error.h pathnames.h +builtins/common.o: ${DEFDIR}/builtext.h +builtins/common.o: ${BASHINCDIR}/chartypes.h +builtins/evalfile.o: bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +builtins/evalfile.o: shell.h syntax.h config.h bashjmp.h command.h general.h xmalloc.h error.h +builtins/evalfile.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +builtins/evalfile.o: make_cmd.h subst.h sig.h pathnames.h externs.h +builtins/evalfile.o: jobs.h builtins.h flags.h input.h execute_cmd.h +builtins/evalfile.o: bashhist.h $(DEFSRC)/common.h +builtins/evalstring.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +builtins/evalstring.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h siglist.h +builtins/evalstring.o: ${BASHINCDIR}/memalloc.h variables.h arrayfunc.h conftypes.h input.h +builtins/evalstring.o: quit.h unwind_prot.h ${BASHINCDIR}/maxpath.h jobs.h builtins.h +builtins/evalstring.o: dispose_cmd.h make_cmd.h subst.h externs.h +builtins/evalstring.o: jobs.h builtins.h flags.h input.h execute_cmd.h +builtins/evalstring.o: bashhist.h $(DEFSRC)/common.h +builtins/getopt.o: config.h ${BASHINCDIR}/memalloc.h +builtins/getopt.o: shell.h syntax.h bashjmp.h command.h general.h xmalloc.h error.h +builtins/getopt.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +builtins/getopt.o: make_cmd.h subst.h sig.h pathnames.h externs.h +builtins/getopt.o: $(DEFSRC)/getopt.h +builtins/mkbuiltins.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h +builtins/mkbuiltins.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h + +# builtin def files +builtins/alias.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/alias.o: quit.h $(DEFSRC)/common.h +builtins/alias.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h ${BASHINCDIR}/stdc.h unwind_prot.h +builtins/alias.o: dispose_cmd.h make_cmd.h subst.h externs.h variables.h arrayfunc.h conftypes.h +builtins/bind.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/bind.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/bind.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/bind.o: $(DEFSRC)/bashgetopt.h +builtins/break.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/break.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/break.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/builtin.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/builtin.o: quit.h $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h +builtins/builtin.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/builtin.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/caller.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/caller.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/caller.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/caller.o: $(DEFSRC)/common.h quit.h +builtins/caller.o: ${BASHINCDIR}/chartypes.h bashtypes.h +builtins/caller.o: ${DEFDIR}/builtext.h +builtins/cd.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/cd.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/cd.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/cd.o: $(DEFSRC)/common.h quit.h +builtins/command.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/command.o: quit.h $(DEFSRC)/bashgetopt.h +builtins/command.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/command.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/declare.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/declare.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/declare.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/declare.o: $(DEFSRC)/bashgetopt.h +builtins/echo.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/echo.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/echo.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/enable.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/enable.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/enable.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/enable.o: pcomplete.h +builtins/eval.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/eval.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/eval.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/exec.o: bashtypes.h +builtins/exec.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/exec.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/exec.o: dispose_cmd.h make_cmd.h subst.h externs.h execute_cmd.h +builtins/exec.o: findcmd.h flags.h quit.h $(DEFSRC)/common.h ${BASHINCDIR}/stdc.h +builtins/exit.o: bashtypes.h +builtins/exit.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/exit.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/exit.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/fc.o: bashtypes.h ${BASHINCDIR}/posixstat.h +builtins/fc.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h builtins.h command.h ${BASHINCDIR}/stdc.h +builtins/fc.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/fc.o: flags.h unwind_prot.h variables.h arrayfunc.h conftypes.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h +builtins/fc.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h quit.h +builtins/fc.o: $(DEFSRC)/bashgetopt.h bashhist.h +builtins/fc.o: ${BASHINCDIR}/chartypes.h +builtins/fg_bg.o: bashtypes.h $(DEFSRC)/bashgetopt.h +builtins/fg_bg.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/fg_bg.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/fg_bg.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/getopts.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/getopts.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/getopts.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/hash.o: bashtypes.h +builtins/hash.o: builtins.h command.h findcmd.h ${BASHINCDIR}/stdc.h $(DEFSRC)/common.h +builtins/hash.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/hash.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/help.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/help.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/help.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/help.o: $(GLOB_LIBSRC)/glob.h +builtins/history.o: bashtypes.h +builtins/history.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/history.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/history.o: ${BASHINCDIR}/filecntl.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h +builtins/history.o: bashhist.h variables.h arrayfunc.h conftypes.h +builtins/inlib.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/inlib.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/inlib.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/jobs.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/jobs.o: quit.h $(DEFSRC)/bashgetopt.h +builtins/jobs.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/jobs.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/kill.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/kill.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/kill.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h trap.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/let.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/let.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/let.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/printf.o: config.h ${BASHINCDIR}/memalloc.h bashjmp.h command.h error.h +builtins/printf.o: general.h xmalloc.h quit.h dispose_cmd.h make_cmd.h subst.h +builtins/printf.o: externs.h sig.h pathnames.h shell.h syntax.h unwind_prot.h +builtins/printf.o: variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/stdc.h $(DEFSRC)/bashgetopt.h +builtins/printf.o: ${BASHINCDIR}/chartypes.h +builtins/pushd.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/pushd.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/pushd.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/pushd.o: $(DEFSRC)/common.h +builtins/read.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/read.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/read.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/return.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/return.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/return.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/set.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/set.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/set.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h flags.h +builtins/setattr.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/setattr.o: quit.h $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h +builtins/setattr.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/setattr.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/shift.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/shift.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/shift.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/shift.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/shopt.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h +builtins/shopt.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h +builtins/shopt.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h unwind_prot.h variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/maxpath.h +builtins/shopt.o: $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h +builtins/source.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/source.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/source.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/source.o: findcmd.h $(DEFSRC)/bashgetopt.h flags.h trap.h +builtins/suspend.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/suspend.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/suspend.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/test.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/test.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/test.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/test.o: test.h +builtins/times.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/times.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/times.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/trap.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/trap.o: quit.h $(DEFSRC)/common.h +builtins/trap.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/trap.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/type.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/type.o: quit.h $(DEFSRC)/common.h findcmd.h +builtins/type.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/type.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/ulimit.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/ulimit.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/ulimit.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/umask.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/umask.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/umask.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/umask.o: ${BASHINCDIR}/chartypes.h +builtins/wait.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/wait.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/wait.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/wait.o: ${BASHINCDIR}/chartypes.h + +builtins/complete.o: config.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h +builtins/complete.o: unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/complete.o: bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +builtins/complete.o: builtins.h +builtins/complete.o: pcomplete.h +builtins/complete.o: ${DEFSRC}/common.h ${DEFSRC}/bashgetopt.h + +# libintl dependencies +builtins/bind.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/break.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/caller.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/cd.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/common.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/complete.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/declare.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/enable.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/evalfile.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/exec.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/exit.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/fc.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/fg_bg.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/getopt.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/hash.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/help.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/history.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/inlib.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/jobs.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/kill.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/let.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/mkbuiltins.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/printf.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/pushd.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/read.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/return.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/set.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/setattr.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/shift.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/shopt.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/source.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/suspend.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/type.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/ulimit.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/umask.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + +# builtin library dependencies +builtins/bind.o: $(RL_LIBSRC)/chardefs.h $(RL_LIBSRC)/readline.h +builtins/bind.o: $(RL_LIBSRC)/keymaps.h $(RL_LIBSRC)/rlstdc.h + +builtins/bind.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h +builtins/fc.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h +builtins/history.o: $(HIST_LIBSRC)/history.h $(RL_LIBSRC)/rlstdc.h + +builtins/common.o: $(TILDE_LIBSRC)/tilde.h +builtins/cd.o: $(TILDE_LIBSRC)/tilde.h + +builtins/alias.o: $(DEFSRC)/alias.def +builtins/bind.o: $(DEFSRC)/bind.def +builtins/break.o: $(DEFSRC)/break.def +builtins/builtin.o: $(DEFSRC)/builtin.def +builtins/caller.o: $(DEFSRC)/caller.def +builtins/cd.o: $(DEFSRC)/cd.def +builtins/colon.o: $(DEFSRC)/colon.def +builtins/command.o: $(DEFSRC)/command.def +builtins/complete.o: $(DEFSRC)/complete.def +builtins/declare.o: $(DEFSRC)/declare.def +builtins/echo.o: $(DEFSRC)/echo.def +builtins/enable.o: $(DEFSRC)/enable.def +builtins/eval.o: $(DEFSRC)/eval.def +builtins/exec.o: $(DEFSRC)/exec.def +builtins/exit.o: $(DEFSRC)/exit.def +builtins/fc.o: $(DEFSRC)/fc.def +builtins/fg_bg.o: $(DEFSRC)/fg_bg.def +builtins/getopts.o: $(DEFSRC)/getopts.def +builtins/hash.o: $(DEFSRC)/hash.def +builtins/help.o: $(DEFSRC)/help.def +builtins/history.o: $(DEFSRC)/history.def +builtins/inlib.o: $(DEFSRC)/inlib.def +builtins/jobs.o: $(DEFSRC)/jobs.def +builtins/kill.o: $(DEFSRC)/kill.def +builtins/let.o: $(DEFSRC)/let.def +builtins/pushd.o: $(DEFSRC)/pushd.def +builtins/read.o: $(DEFSRC)/read.def +builtins/reserved.o: $(DEFSRC)/reserved.def +builtins/return.o: $(DEFSRC)/return.def +builtins/set.o: $(DEFSRC)/set.def +builtins/setattr.o: $(DEFSRC)/setattr.def +builtins/shift.o: $(DEFSRC)/shift.def +builtins/shopt.o: $(DEFSRC)/shopt.def +builtins/source.o: $(DEFSRC)/source.def +builtins/suspend.o: $(DEFSRC)/suspend.def +builtins/test.o: $(DEFSRC)/test.def +builtins/times.o: $(DEFSRC)/times.def +builtins/trap.o: $(DEFSRC)/trap.def +builtins/type.o: $(DEFSRC)/type.def +builtins/ulimit.o: $(DEFSRC)/ulimit.def +builtins/umask.o: $(DEFSRC)/umask.def +builtins/wait.o: $(DEFSRC)/wait.def diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0 index ff4eb31f1..fa2b495fa 100644 --- a/autom4te.cache/output.0 +++ b/autom4te.cache/output.0 @@ -1,7 +1,7 @@ @%:@! /bin/sh -@%:@ From configure.in for Bash 3.0, version 3.168, from autoconf version AC_ACVERSION. +@%:@ From configure.in for Bash 3.0, version 3.169, from autoconf version AC_ACVERSION. @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.57 for bash 3.0-release. +@%:@ Generated by GNU Autoconf 2.57 for bash 3.1-devel. @%:@ @%:@ Report bugs to . @%:@ @@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='3.0-release' -PACKAGE_STRING='bash 3.0-release' +PACKAGE_VERSION='3.1-devel' +PACKAGE_STRING='bash 3.1-devel' PACKAGE_BUGREPORT='bug-bash@gnu.org' ac_unique_file="shell.h" @@ -784,7 +784,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash 3.0-release to adapt to many kinds of systems. +\`configure' configures bash 3.1-devel to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -845,7 +845,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 3.0-release:";; + short | recursive ) echo "Configuration of bash 3.1-devel:";; esac cat <<\_ACEOF @@ -1000,7 +1000,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -bash configure 3.0-release +bash configure 3.1-devel generated by GNU Autoconf 2.57 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 @@ -1015,7 +1015,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 3.0-release, which was +It was created by bash $as_me 3.1-devel, which was generated by GNU Autoconf 2.57. Invocation command line was $ $0 $@ @@ -1383,8 +1383,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. ac_config_headers="$ac_config_headers config.h" -BASHVERS=3.0 -RELSTATUS=release +BASHVERS=3.1 +RELSTATUS=devel case "$RELSTATUS" in alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; @@ -11534,7 +11534,8 @@ done -for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr + +for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -24445,7 +24446,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by bash $as_me 3.0-release, which was +This file was extended by bash $as_me 3.1-devel, which was generated by GNU Autoconf 2.57. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -24508,7 +24509,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -bash config.status 3.0-release +bash config.status 3.1-devel configured by $0, generated by GNU Autoconf 2.57, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/autom4te.cache/requests b/autom4te.cache/requests index 90908ed31..ada195763 100644 --- a/autom4te.cache/requests +++ b/autom4te.cache/requests @@ -15,96 +15,96 @@ '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' ) ); diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0 index 735deae37..2aa1b3fab 100644 --- a/autom4te.cache/traces.0 +++ b/autom4te.cache/traces.0 @@ -1,4 +1,4 @@ -m4trace:configure.in:30: -1- AC_INIT([bash], [3.0-release], [bug-bash@gnu.org]) +m4trace:configure.in:30: -1- AC_INIT([bash], [3.1-devel], [bug-bash@gnu.org]) m4trace:configure.in:30: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.in:30: -1- m4_pattern_forbid([_AC_]) m4trace:configure.in:30: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) @@ -729,7 +729,8 @@ m4trace:configure.in:649: -1- AC_LIBSOURCE([strftime.c]) m4trace:configure.in:649: -1- AC_LIBSOURCE([strpbrk.c]) m4trace:configure.in:649: -1- AC_LIBSOURCE([memset.c]) m4trace:configure.in:649: -1- AC_LIBSOURCE([strstr.c]) -m4trace:configure.in:649: -1- AC_CHECK_FUNCS([getcwd strcasecmp strerror strftime strpbrk memset strstr], [], [_AC_LIBOBJ($ac_func)]) +m4trace:configure.in:649: -1- AC_LIBSOURCE([strnlen.c]) +m4trace:configure.in:649: -1- AC_CHECK_FUNCS([getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen], [], [_AC_LIBOBJ($ac_func)]) m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ #undef HAVE_GETCWD]) m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ @@ -744,6 +745,8 @@ m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you ha #undef HAVE_MEMSET]) m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */ #undef HAVE_STRSTR]) +m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */ +#undef HAVE_STRNLEN]) m4trace:configure.in:649: -1- AC_SUBST([LIB@&t@OBJS]) m4trace:configure.in:650: -1- AC_LIBSOURCE([strtod.c]) m4trace:configure.in:650: -1- AC_LIBSOURCE([strtol.c]) diff --git a/builtins/cd.def b/builtins/cd.def index 2be86d11f..39afbebea 100644 --- a/builtins/cd.def +++ b/builtins/cd.def @@ -355,7 +355,7 @@ pwd_builtin (list) fflush (stdout); if (ferror (stdout)) { - builtin_error (_("write error: %s"), strerror (errno)); + sh_wrerror (); clearerr (stdout); return (EXECUTION_FAILURE); } diff --git a/builtins/common.c b/builtins/common.c index 3d3dd5947..8c2dde4a2 100644 --- a/builtins/common.c +++ b/builtins/common.c @@ -270,6 +270,12 @@ sh_notbuiltin (s) builtin_error (_("%s: not a shell builtin"), s); } +void +sh_wrerror () +{ + builtin_error (_("write error: %s"), strerror (errno)); +} + /* **************************************************************** */ /* */ /* Shell positional parameter manipulation */ diff --git a/builtins/common.h b/builtins/common.h index 869d3af2b..df3032529 100644 --- a/builtins/common.h +++ b/builtins/common.h @@ -77,6 +77,7 @@ extern void sh_readonly __P((const char *)); extern void sh_nojobs __P((char *)); extern void sh_restricted __P((char *)); extern void sh_notbuiltin __P((char *)); +extern void sh_wrerror __P((void)); extern char **make_builtin_argv __P((WORD_LIST *, int *)); extern void remember_args __P((WORD_LIST *, int)); diff --git a/builtins/echo.def b/builtins/echo.def index 9d141e5c5..a13c6c4a1 100644 --- a/builtins/echo.def +++ b/builtins/echo.def @@ -175,6 +175,7 @@ just_echo: fflush (stdout); if (ferror (stdout)) { + sh_wrerror (); clearerr (stdout); return (EXECUTION_FAILURE); } diff --git a/builtins/printf.def b/builtins/printf.def index d9719b82a..5342a7312 100644 --- a/builtins/printf.def +++ b/builtins/printf.def @@ -105,7 +105,7 @@ extern int errno; #define LENMODS "hjlLtz" static void printf_erange __P((char *)); -static void printstr __P((char *, char *, int, int, int)); +static int printstr __P((char *, char *, int, int, int)); static int tescape __P((char *, char *, int *)); static char *bexpand __P((char *, int, int *, int *)); static char *mklong __P((char *, char *, size_t)); @@ -297,7 +297,7 @@ printf_builtin (list) case 'b': /* expand escapes in argument */ { char *p, *xp; - int rlen; + int rlen, r; p = getstr (); ch = rlen = 0; @@ -307,11 +307,17 @@ printf_builtin (list) { /* Have to use printstr because of possible NUL bytes in XP -- printf does not handle that well. */ - printstr (start, xp, rlen, fieldwidth, precision); + r = printstr (start, xp, rlen, fieldwidth, precision); + if (r < 0) + { + sh_wrerror (); + clearerr (stdout); + retval = EXECUTION_FAILURE; + } free (xp); } - if (ch) + if (ch || r < 0) PRETURN (retval); break; } @@ -319,6 +325,7 @@ printf_builtin (list) case 'q': /* print with shell quoting */ { char *p, *xp; + int r; p = getstr (); if (ansic_shouldquote (p)) @@ -328,9 +335,17 @@ printf_builtin (list) if (xp) { /* Use printstr to get fieldwidth and precision right. */ - printstr (start, xp, strlen (xp), fieldwidth, precision); + r = printstr (start, xp, strlen (xp), fieldwidth, precision); + if (r < 0) + { + sh_wrerror (); + clearerr (stdout); + } free (xp); } + + if (r < 0) + PRETURN (EXECUTION_FAILURE); break; } @@ -412,6 +427,13 @@ printf_builtin (list) modstart[0] = thisch; modstart[1] = nextch; } + + if (ferror (stdout)) + { + sh_wrerror (); + clearerr (stdout); + PRETURN (EXECUTION_FAILURE); + } } while (garglist && garglist != list->next); @@ -429,7 +451,7 @@ printf_erange (s) } /* We duplicate a lot of what printf(3) does here. */ -static void +static int printstr (fmt, string, len, fieldwidth, precision) char *fmt; /* format */ char *string; /* expanded string argument */ @@ -531,6 +553,8 @@ printstr (fmt, string, len, fieldwidth, precision) /* output any necessary trailing padding */ for (; padlen < 0; padlen++) putchar (' '); + + return (ferror (stdout) ? -1 : 0); } /* Convert STRING by expanding the escape sequences specified by the diff --git a/config.h.in b/config.h.in index 753b18a8b..8e3e4569f 100644 --- a/config.h.in +++ b/config.h.in @@ -664,6 +664,9 @@ /* Define if you have the strftime function. */ #undef HAVE_STRFTIME +/* Define if you have the strnlen function. */ +#undef HAVE_STRNLEN + /* Define if you have the strpbrk function. */ #undef HAVE_STRPBRK diff --git a/config.h.in~ b/config.h.in~ new file mode 100644 index 000000000..753b18a8b --- /dev/null +++ b/config.h.in~ @@ -0,0 +1,976 @@ +/* config.h -- Configuration file for bash. */ + +/* Copyright (C) 1987-2004 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with Bash; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + +#ifndef _CONFIG_H_ +#define _CONFIG_H_ + +/* Configuration feature settings controllable by autoconf. */ + +/* Define JOB_CONTROL if your operating system supports + BSD-like job control. */ +#undef JOB_CONTROL + +/* Define ALIAS if you want the alias features. */ +#undef ALIAS + +/* Define PUSHD_AND_POPD if you want those commands to be compiled in. + (Also the `dirs' commands.) */ +#undef PUSHD_AND_POPD + +/* Define BRACE_EXPANSION if you want curly brace expansion a la Csh: + foo{a,b} -> fooa foob. Even if this is compiled in (the default) you + can turn it off at shell startup with `-nobraceexpansion', or during + shell execution with `set +o braceexpand'. */ +#undef BRACE_EXPANSION + +/* Define READLINE to get the nifty/glitzy editing features. + This is on by default. You can turn it off interactively + with the -nolineediting flag. */ +#undef READLINE + +/* Define BANG_HISTORY if you want to have Csh style "!" history expansion. + This is unrelated to READLINE. */ +#undef BANG_HISTORY + +/* Define HISTORY if you want to have access to previously typed commands. + + If both HISTORY and READLINE are defined, you can get at the commands + with line editing commands, and you can directly manipulate the history + from the command line. + + If only HISTORY is defined, the `fc' and `history' builtins are + available. */ +#undef HISTORY + +/* Define this if you want completion that puts all alternatives into + a brace expansion shell expression. */ +#if defined (BRACE_EXPANSION) && defined (READLINE) +# define BRACE_COMPLETION +#endif /* BRACE_EXPANSION */ + +/* Define DEFAULT_ECHO_TO_XPG if you want the echo builtin to interpret + the backslash-escape characters by default, like the XPG Single Unix + Specification V2 for echo. + This requires that V9_ECHO be defined. */ +#undef DEFAULT_ECHO_TO_XPG + +/* Define HELP_BUILTIN if you want the `help' shell builtin and the long + documentation strings compiled into the shell. */ +#undef HELP_BUILTIN + +/* Define RESTRICTED_SHELL if you want the generated shell to have the + ability to be a restricted one. The shell thus generated can become + restricted by being run with the name "rbash", or by setting the -r + flag. */ +#undef RESTRICTED_SHELL + +/* Define DISABLED_BUILTINS if you want "builtin foo" to always run the + shell builtin "foo", even if it has been disabled with "enable -n foo". */ +#undef DISABLED_BUILTINS + +/* Define PROCESS_SUBSTITUTION if you want the K*rn shell-like process + substitution features "<(file)". */ +/* Right now, you cannot do this on machines without fully operational + FIFO support. This currently include NeXT and Alliant. */ +#undef PROCESS_SUBSTITUTION + +/* Define PROMPT_STRING_DECODE if you want the backslash-escaped special + characters in PS1 and PS2 expanded. Variable expansion will still be + performed. */ +#undef PROMPT_STRING_DECODE + +/* Define SELECT_COMMAND if you want the Korn-shell style `select' command: + select word in word_list; do command_list; done */ +#undef SELECT_COMMAND + +/* Define COMMAND_TIMING of you want the ksh-style `time' reserved word and + the ability to time pipelines, functions, and builtins. */ +#undef COMMAND_TIMING + +/* Define ARRAY_VARS if you want ksh-style one-dimensional array variables. */ +#undef ARRAY_VARS + +/* Define DPAREN_ARITHMETIC if you want the ksh-style ((...)) arithmetic + evaluation command. */ +#undef DPAREN_ARITHMETIC + +/* Define EXTENDED_GLOB if you want the ksh-style [*+@?!](patlist) extended + pattern matching. */ +#undef EXTENDED_GLOB + +/* Define COND_COMMAND if you want the ksh-style [[...]] conditional + command. */ +#undef COND_COMMAND + +/* Define COND_REGEXP if you want extended regular expression matching and the + =~ binary operator in the [[...]] conditional command. */ +#define COND_REGEXP + +/* Define ARITH_FOR_COMMAND if you want the ksh93-style + for (( init; test; step )) do list; done + arithmetic for command. */ +#undef ARITH_FOR_COMMAND + +/* Define NETWORK_REDIRECTIONS if you want /dev/(tcp|udp)/host/port to open + socket connections when used in redirections */ +#undef NETWORK_REDIRECTIONS + +/* Define PROGRAMMABLE_COMPLETION for the programmable completion features + and the complete builtin. */ +#undef PROGRAMMABLE_COMPLETION + +/* Define NO_MULTIBYTE_SUPPORT to not compile in support for multibyte + characters, even if the OS supports them. */ +#undef NO_MULTIBYTE_SUPPORT + +/* Define DEBUGGER if you want to compile in some features used only by the + bash debugger. */ +#undef DEBUGGER + +/* Define MEMSCRAMBLE if you want the bash malloc and free to scramble + memory contents on malloc() and free(). */ +#undef MEMSCRAMBLE + +/* Define AFS if you are using Transarc's AFS. */ +#undef AFS + +#undef ENABLE_NLS + +/* End of configuration settings controllable by autoconf. */ +/* Other settable options appear in config-top.h. */ + +#include "config-top.h" + +/* Beginning of autoconf additions. */ + +/* Characteristics of the C compiler */ +#undef const + +#undef inline + +/* Define if cpp supports the ANSI-C stringizing `#' operator */ +#undef HAVE_STRINGIZE + +/* Define if the compiler supports `long double' variables. */ +#undef HAVE_LONG_DOUBLE + +#undef PROTOTYPES + +#undef __CHAR_UNSIGNED__ + +/* Define if the compiler supports `long long' variables. */ +#undef HAVE_LONG_LONG + +#undef HAVE_UNSIGNED_LONG_LONG + +/* The number of bytes in a int. */ +#undef SIZEOF_INT + +/* The number of bytes in a long. */ +#undef SIZEOF_LONG + +/* The number of bytes in a pointer to char. */ +#undef SIZEOF_CHAR_P + +/* The number of bytes in a double (hopefully 8). */ +#undef SIZEOF_DOUBLE + +/* The number of bytes in a `long long', if we have one. */ +#undef SIZEOF_LONG_LONG + +/* System paths */ + +#define DEFAULT_MAIL_DIRECTORY "/usr/spool/mail" + +/* Characteristics of the system's header files and libraries that affect + the compilation environment. */ + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +#undef _POSIX_1_SOURCE + +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE + +/* Define to use GNU libc extensions */ +#undef _GNU_SOURCE + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Memory management functions. */ + +/* Define if using the bash version of malloc in lib/malloc/malloc.c */ +#undef USING_BASH_MALLOC + +#undef DISABLE_MALLOC_WRAPPERS + +/* Define if using alloca.c. */ +#undef C_ALLOCA + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +#undef CRAY_STACKSEG_END + +/* Define if you have alloca, as a function or macro. */ +#undef HAVE_ALLOCA + +/* Define if you have and it should be used (not on Ultrix). */ +#undef HAVE_ALLOCA_H + + +/* SYSTEM TYPES */ + +/* Define to `long' if doesn't define. */ +#undef off_t + +/* Define to `int' if doesn't define. */ +#undef mode_t + +/* Define to `int' if doesn't define. */ +#undef sigset_t + +/* Define to `int' if doesn't define. */ +#undef pid_t + +/* Define to `short' if doesn't define. */ +#undef bits16_t + +/* Define to `unsigned short' if doesn't define. */ +#undef u_bits16_t + +/* Define to `int' if doesn't define. */ +#undef bits32_t + +/* Define to `unsigned int' if doesn't define. */ +#undef u_bits32_t + +/* Define to `double' if doesn't define. */ +#undef bits64_t + +/* Define to `unsigned int' if doesn't define. */ +#undef u_int + +/* Define to `unsigned long' if doesn't define. */ +#undef u_long + +/* Define to `int' if doesn't define. */ +#undef ptrdiff_t + +/* Define to `unsigned' if doesn't define. */ +#undef size_t + +/* Define to `int' if doesn't define. */ +#undef ssize_t + +/* Define to `long' if doesn't define. */ +#undef intmax_t + +/* Define to `unsigned long' if doesn't define. */ +#undef uintmax_t + +/* Define to `int' if doesn't define. */ +#undef uid_t + +/* Define to `long' if doesn't define. */ +#undef clock_t + +/* Define to `long' if doesn't define. */ +#undef time_t + +/* Define to `int' if doesn't define. */ +#undef gid_t + +/* Define to `unsigned int' if doesn't define. */ +#undef socklen_t + +/* Define if you have quad_t in . */ +#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 or . */ +#undef HAVE_DECL_SYS_SIGLIST +#undef SYS_SIGLIST_DECLARED + +/* Define if `_sys_siglist' is declared by or . */ +#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 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 header file. */ +#undef HAVE_ARPA_INET_H + +/* Define if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define if you have the header file. */ +#undef HAVE_GRP_H + +/* Define if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if you have the header file. */ +#undef HAVE_LANGINFO_H + +/* Define if you have the header file. */ +#undef HAVE_LIBINTL_H + +/* Define if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define if you have the header file. */ +#undef HAVE_NDIR_H + +/* Define if you have the header file. */ +#undef HAVE_NETDB_H + +/* Define if you have the header file. */ +#undef HAVE_NETINET_IN_H + +/* Define if you have the header file. */ +#undef HAVE_REGEX_H + +/* Define if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define if you have the header file. */ +#undef HAVE_STDARG_H + +/* Define if you have the header file. */ +#undef HAVE_STRING_H + +/* Define if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define if you have the header file. */ +#undef HAVE_STDDEF_H + +/* Define if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_DIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_FILE_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_NDIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_PTE_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_PTEM_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_RESOURCE_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_STREAM_H + +/* Define if you have */ +#undef HAVE_SYS_TIME_H + +#undef TIME_WITH_SYS_TIME + +/* Define if you have */ +#undef HAVE_SYS_TIMES_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define if you have that is POSIX.1 compatible. */ +#undef HAVE_SYS_WAIT_H + +/* Define if you have the header file. */ +#undef HAVE_TERMCAP_H + +/* Define if you have the header file. */ +#undef HAVE_TERMIO_H + +/* Define if you have the header file. */ +#undef HAVE_TERMIOS_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the header file. */ +#undef HAVE_VARARGS_H + +/* Define if you have the header file. */ +#undef HAVE_WCHAR_H + +/* Define if you have the 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 + ? */ +#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 header file. */ +#undef HAVE_ARGZ_H + +/* Define if you have the header file. */ +#undef HAVE_ERRNO_H + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define if you have the header file. */ +#undef HAVE_MALLOC_H + +/* Define if you have the 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_ */ diff --git a/configure b/configure index 803b4118a..5910defe6 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.in for Bash 3.0, version 3.168, from autoconf version AC_ACVERSION. +# From configure.in for Bash 3.0, version 3.169, from autoconf version AC_ACVERSION. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.57 for bash 3.0-release. +# Generated by GNU Autoconf 2.57 for bash 3.1-devel. # # Report bugs to . # @@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='3.0-release' -PACKAGE_STRING='bash 3.0-release' +PACKAGE_VERSION='3.1-devel' +PACKAGE_STRING='bash 3.1-devel' PACKAGE_BUGREPORT='bug-bash@gnu.org' ac_unique_file="shell.h" @@ -784,7 +784,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash 3.0-release to adapt to many kinds of systems. +\`configure' configures bash 3.1-devel to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -845,7 +845,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 3.0-release:";; + short | recursive ) echo "Configuration of bash 3.1-devel:";; esac cat <<\_ACEOF @@ -1000,7 +1000,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -bash configure 3.0-release +bash configure 3.1-devel generated by GNU Autoconf 2.57 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 @@ -1015,7 +1015,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 3.0-release, which was +It was created by bash $as_me 3.1-devel, which was generated by GNU Autoconf 2.57. Invocation command line was $ $0 $@ @@ -1383,8 +1383,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. ac_config_headers="$ac_config_headers config.h" -BASHVERS=3.0 -RELSTATUS=release +BASHVERS=3.1 +RELSTATUS=devel case "$RELSTATUS" in alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; @@ -11534,7 +11534,8 @@ done -for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr + +for ac_func in getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -24445,7 +24446,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by bash $as_me 3.0-release, which was +This file was extended by bash $as_me 3.1-devel, which was generated by GNU Autoconf 2.57. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -24508,7 +24509,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -bash config.status 3.0-release +bash config.status 3.1-devel configured by $0, generated by GNU Autoconf 2.57, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.in b/configure.in index 55c8a5c75..d1fc8048a 100644 --- a/configure.in +++ b/configure.in @@ -22,10 +22,10 @@ dnl Process this file with autoconf to produce a configure script. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. -AC_REVISION([for Bash 3.0, version 3.168, from autoconf version] AC_ACVERSION)dnl +AC_REVISION([for Bash 3.0, version 3.169, from autoconf version] AC_ACVERSION)dnl -define(bashvers, 3.0) -define(relstatus, release) +define(bashvers, 3.1) +define(relstatus, devel) AC_INIT(bash, bashvers-relstatus, bug-bash@gnu.org) @@ -646,7 +646,7 @@ AC_CHECK_FUNCS(bcopy bzero confstr sysconf pathconf setenv putenv unsetenv \ getaddrinfo gethostbyname getservbyname getservent inet_aton \ vsnprintf snprintf vasprintf asprintf fnmatch regcomp regexec) AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit) -AC_REPLACE_FUNCS(getcwd strcasecmp strerror strftime strpbrk memset strstr) +AC_REPLACE_FUNCS(getcwd strcasecmp strerror strftime strpbrk memset strstr strnlen) AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax) AC_CHECK_DECLS([confstr]) diff --git a/configure.in~ b/configure.in~ index e9ea6378a..55c8a5c75 100644 --- a/configure.in~ +++ b/configure.in~ @@ -22,7 +22,7 @@ dnl Process this file with autoconf to produce a configure script. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. -AC_REVISION([for Bash 3.0, version 3.166, from autoconf version] AC_ACVERSION)dnl +AC_REVISION([for Bash 3.0, version 3.168, from autoconf version] AC_ACVERSION)dnl define(bashvers, 3.0) define(relstatus, release) @@ -574,11 +574,19 @@ BASH_HEADER_INTTYPES AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ stddef.h stdint.h netdb.h grp.h strings.h regex.h) -AC_CHECK_HEADERS(sys/ptem.h sys/pte.h sys/stream.h sys/select.h sys/file.h \ +AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \ sys/resource.h sys/param.h sys/socket.h sys/stat.h \ sys/time.h sys/times.h sys/types.h sys/wait.h) AC_CHECK_HEADERS(netinet/in.h arpa/inet.h) +dnl sys/ptem.h requires definitions from sys/stream.h on systems where it +dnl exists +AC_CHECK_HEADER(sys/ptem.h, , ,[[ +#if HAVE_SYS_STREAM_H +# include +#endif +]]) + dnl special checks for libc functions AC_FUNC_ALLOCA AC_FUNC_GETPGRP diff --git a/doc/FAQ b/doc/FAQ index f2f4e37bf..ede1272bf 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,4 +1,4 @@ -This is the Bash FAQ, version 3.28, for Bash version 3.0. +This is the Bash FAQ, version 3.29, for Bash version 3.0. This document contains a set of frequently-asked questions concerning Bash, the GNU Bourne-Again Shell. Bash is a freely-available command @@ -181,16 +181,15 @@ earlier Minix versions yet. Bash has been ported to versions of Windows implementing the Win32 programming interface. This includes Windows 95 and Windows NT. -The port was done by Cygnus Solutions as part of their CYGWIN -project. For more information about the project, look at the URLs - -http://www.cygwin.com/ -http://sourceware.cygnus.com/cygwin +The port was done by Cygnus Solutions (now part of Red Hat) as part +of their CYGWIN project. For more information about the project, see +http://www.cygwin.com/. Cygnus originally ported bash-1.14.7, and that port was part of their early GNU-Win32 (the original name) releases. Cygnus has also done a -port of bash-2.05 to the CYGWIN environment, and it is available as -part of their current release. +port of bash-2.05b to the CYGWIN environment, and it is available as +part of their current release. Bash-3.0 is currently being tested and +should be available soon. Bash-2.05b and later versions should require no local Cygnus changes to build and run under CYGWIN. diff --git a/doc/FAQ~ b/doc/FAQ~ new file mode 100644 index 000000000..f2f4e37bf --- /dev/null +++ b/doc/FAQ~ @@ -0,0 +1,1785 @@ +This is the Bash FAQ, version 3.28, for Bash version 3.0. + +This document contains a set of frequently-asked questions concerning +Bash, the GNU Bourne-Again Shell. Bash is a freely-available command +interpreter with advanced features for both interactive use and shell +programming. + +Another good source of basic information about shells is the collection +of FAQ articles periodically posted to comp.unix.shell. + +Questions and comments concerning this document should be sent to +chet@po.cwru.edu. + +This document is available for anonymous FTP with the URL + +ftp://ftp.cwru.edu/pub/bash/FAQ + +The Bash home page is http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html + +---------- +Contents: + +Section A: The Basics + +A1) What is it? +A2) What's the latest version? +A3) Where can I get it? +A4) On what machines will bash run? +A5) Will bash run on operating systems other than Unix? +A6) How can I build bash with gcc? +A7) How can I make bash my login shell? +A8) I just changed my login shell to bash, and now I can't FTP into my + machine. Why not? +A9) What's the `POSIX Shell and Utilities standard'? +A10) What is the bash `posix mode'? + +Section B: The latest version + +B1) What's new in version 3.0? +B2) Are there any user-visible incompatibilities between bash-3.0 and + bash-1.14.7? + +Section C: Differences from other Unix shells + +C1) How does bash differ from sh, the Bourne shell? +C2) How does bash differ from the Korn shell, version ksh88? +C3) Which new features in ksh-93 are not in bash, and which are? + +Section D: Why does bash do some things differently than other Unix shells? + +D1) Why does bash run a different version of `command' than + `which command' says it will? +D2) Why doesn't bash treat brace expansions exactly like csh? +D3) Why doesn't bash have csh variable modifiers? +D4) How can I make my csh aliases work when I convert to bash? +D5) How can I pipe standard output and standard error from one command to + another, like csh does with `|&'? +D6) Now that I've converted from ksh to bash, are there equivalents to + ksh features like autoloaded functions and the `whence' command? + +Section E: Why does bash do certain things the way it does? + +E1) Why is the bash builtin `test' slightly different from /bin/test? +E2) Why does bash sometimes say `Broken pipe'? +E3) When I have terminal escape sequences in my prompt, why does bash + wrap lines at the wrong column? +E4) If I pipe the output of a command into `read variable', why doesn't + the output show up in $variable when the read command finishes? +E5) I have a bunch of shell scripts that use backslash-escaped characters + in arguments to `echo'. Bash doesn't interpret these characters. Why + not, and how can I make it understand them? +E6) Why doesn't a while or for loop get suspended when I type ^Z? +E7) What about empty for loops in Makefiles? +E8) Why does the arithmetic evaluation code complain about `08'? +E9) Why does the pattern matching expression [A-Z]* match files beginning + with every letter except `z'? +E10) Why does `cd //' leave $PWD as `//'? +E11) If I resize my xterm while another program is running, why doesn't bash + notice the change? +E12) Why don't negative offsets in substring expansion work like I expect? + +Section F: Things to watch out for on certain Unix versions + +F1) Why can't I use command line editing in my `cmdtool'? +F2) I built bash on Solaris 2. Why do globbing expansions and filename + completion chop off the first few characters of each filename? +F3) Why does bash dump core after I interrupt username completion or + `~user' tilde expansion on a machine running NIS? +F4) I'm running SVR4.2. Why is the line erased every time I type `@'? +F5) Why does bash report syntax errors when my C News scripts use a + redirection before a subshell command? +F6) Why can't I use vi-mode editing on Red Hat Linux 6.1? +F7) Why do bash-2.05a and bash-2.05b fail to compile `printf.def' on + HP/UX 11.x? + +Section G: How can I get bash to do certain common things? + +G1) How can I get bash to read and display eight-bit characters? +G2) How do I write a function `x' to replace builtin command `x', but + still invoke the command from within the function? +G3) How can I find the value of a shell variable whose name is the value + of another shell variable? +G4) How can I make the bash `time' reserved word print timing output that + looks like the output from my system's /usr/bin/time? +G5) How do I get the current directory into my prompt? +G6) How can I rename "*.foo" to "*.bar"? +G7) How can I translate a filename from uppercase to lowercase? +G8) How can I write a filename expansion (globbing) pattern that will match + all files in the current directory except "." and ".."? + +Section H: Where do I go from here? + +H1) How do I report bugs in bash, and where should I look for fixes and + advice? +H2) What kind of bash documentation is there? +H3) What's coming in future versions? +H4) What's on the bash `wish list'? +H5) When will the next release appear? + +---------- +Section A: The Basics + +A1) What is it? + +Bash is a Unix command interpreter (shell). It is an implementation of +the Posix 1003.2 shell standard, and resembles the Korn and System V +shells. + +Bash contains a number of enhancements over those shells, both +for interactive use and shell programming. Features geared +toward interactive use include command line editing, command +history, job control, aliases, and prompt expansion. Programming +features include additional variable expansions, shell +arithmetic, and a number of variables and options to control +shell behavior. + +Bash was originally written by Brian Fox of the Free Software +Foundation. The current developer and maintainer is Chet Ramey +of Case Western Reserve University. + +A2) What's the latest version? + +The latest version is 3.0, first made available on 27 July, 2004. + +A3) Where can I get it? + +Bash is the GNU project's shell, and so is available from the +master GNU archive site, ftp.gnu.org, and its mirrors. The +latest version is also available for FTP from ftp.cwru.edu. +The following URLs tell how to get version 3.0: + +ftp://ftp.gnu.org/pub/gnu/bash/bash-3.0.tar.gz +ftp://ftp.cwru.edu/pub/bash/bash-3.0.tar.gz + +Formatted versions of the documentation are available with the URLs: + +ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.0.tar.gz +ftp://ftp.cwru.edu/pub/bash/bash-doc-3.0.tar.gz + +A4) On what machines will bash run? + +Bash has been ported to nearly every version of Unix. All you +should have to do to build it on a machine for which a port +exists is to type `configure' and then `make'. The build process +will attempt to discover the version of Unix you have and tailor +itself accordingly, using a script created by GNU autoconf. + +More information appears in the file `INSTALL' in the distribution. + +The Bash web page (http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html) +explains how to obtain binary versions of bash for most of the major +commercial Unix systems. + +A5) Will bash run on operating systems other than Unix? + +Configuration specifics for Unix-like systems such as QNX and +LynxOS are included in the distribution. Bash-2.05 and later +versions should compile and run on Minix 2.0 (patches were +contributed), but I don't believe anyone has built bash-2.x on +earlier Minix versions yet. + +Bash has been ported to versions of Windows implementing the Win32 +programming interface. This includes Windows 95 and Windows NT. +The port was done by Cygnus Solutions as part of their CYGWIN +project. For more information about the project, look at the URLs + +http://www.cygwin.com/ +http://sourceware.cygnus.com/cygwin + +Cygnus originally ported bash-1.14.7, and that port was part of their +early GNU-Win32 (the original name) releases. Cygnus has also done a +port of bash-2.05 to the CYGWIN environment, and it is available as +part of their current release. + +Bash-2.05b and later versions should require no local Cygnus changes to +build and run under CYGWIN. + +DJ Delorie has a port of bash-2.x which runs under MS-DOS, as part +of the DJGPP project. For more information on the project, see + +http://www.delorie.com/djgpp/ + +I have been told that the original DJGPP port was done by Daisuke Aoyama. + +Mark Elbrecht 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 $(, &>, >|, <<<, [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. diff --git a/doc/bash.1 b/doc/bash.1 index 91277b6cf..67ca943fa 100644 --- a/doc/bash.1 +++ b/doc/bash.1 @@ -6186,6 +6186,11 @@ suppressing trailing spaces). Intended to be used with shell functions. .B nospace Tell readline not to append a space (the default) to words completed at the end of the line. +.TP 8 +.B plusdirs +After any matches defined by the compspec are generated, +directory name completion is attempted and any +matches are added to the results of the other actions. .RE .TP 8 \fB\-A\fP \fIaction\fP diff --git a/doc/bash.1~ b/doc/bash.1~ index 584cb8cd5..91277b6cf 100644 --- a/doc/bash.1~ +++ b/doc/bash.1~ @@ -1130,6 +1130,10 @@ Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "\fB$@\fP" is equivalent to "\fB$1\fP" "\fB$2\fP" ... +If the double-quoted expansion occurs within a word, the expansion of +the first parameter is joined with the beginning part of the original +word, and the expansion of the last parameter is joined with the last +part of the original word. When there are no positional parameters, "\fB$@\fP" and .B $@ expand to nothing (i.e., they are removed). @@ -1222,7 +1226,7 @@ The command argument to the \fB\-c\fP invocation option. .TP .B BASH_LINENO An array variable whose members are the line numbers in source files -corresponding to each member of @var{FUNCNAME}. +corresponding to each member of \fBFUNCNAME\fP. \fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP is the line number in the source file where \fB${FUNCNAME[\fP\fI$i + 1\fP\fB]}\fP was called. The corresponding source file name is \fB${BASH_SOURCE[\fP\fI$i + 1\fP\fB]}\fB. @@ -2035,7 +2039,12 @@ character of the .B IFS special variable, and ${\fIname\fP[@]} expands each element of \fIname\fP to a separate word. When there are no array members, -${\fIname\fP[@]} expands to nothing. This is analogous to the expansion +${\fIname\fP[@]} expands to nothing. +If the double-quoted expansion occurs within a word, the expansion of +the first parameter is joined with the beginning part of the original +word, and the expansion of the last parameter is joined with the last +part of the original word. +This is analogous to the expansion of the special parameters \fB*\fP and \fB@\fP (see .B Special Parameters above). ${#\fIname\fP[\fIsubscript\fP]} expands to the length of diff --git a/doc/version.texi b/doc/version.texi index 2a6b6d7c2..559af1e30 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -4,7 +4,7 @@ Copyright (C) 1988-2004 Free Software Foundation, Inc. @set EDITION 3.0 @set VERSION 3.0 -@set UPDATED 27 August 2004 -@set UPDATED-MONTH August 2004 +@set UPDATED 11 September 2004 +@set UPDATED-MONTH September 2004 -@set LASTCHANGE Fri Aug 27 12:15:06 EDT 2004 +@set LASTCHANGE Sat Sep 11 10:13:36 EDT 2004 diff --git a/doc/version.texi~ b/doc/version.texi~ index 5d1cfa75b..2a6b6d7c2 100644 --- a/doc/version.texi~ +++ b/doc/version.texi~ @@ -4,7 +4,7 @@ Copyright (C) 1988-2004 Free Software Foundation, Inc. @set EDITION 3.0 @set VERSION 3.0 -@set UPDATED 2 August 2004 +@set UPDATED 27 August 2004 @set UPDATED-MONTH August 2004 -@set LASTCHANGE Mon Aug 2 22:45:05 EDT 2004 +@set LASTCHANGE Fri Aug 27 12:15:06 EDT 2004 diff --git a/execute_cmd.c b/execute_cmd.c index 338ee02d8..1ef179eae 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -1274,6 +1274,11 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) tcom = (command->type == cm_subshell) ? command->value.Subshell->command : command; + if (command->flags & CMD_TIME_PIPELINE) + tcom->flags |= CMD_TIME_PIPELINE; + if (command->flags & CMD_TIME_POSIX) + tcom->flags |= CMD_TIME_POSIX; + /* Make sure the subshell inherits any CMD_IGNORE_RETURN flag. */ if ((command->flags & CMD_IGNORE_RETURN) && tcom != command) tcom->flags |= CMD_IGNORE_RETURN; diff --git a/lib/readline/complete.c b/lib/readline/complete.c index d212f6184..e545bf8fa 100644 --- a/lib/readline/complete.c +++ b/lib/readline/complete.c @@ -621,6 +621,8 @@ fnprint (to_print) mbstate_t ps; const char *end; size_t tlen; + int width, w; + wchar_t wc; end = to_print + strlen (to_print) + 1; memset (&ps, 0, sizeof (mbstate_t)); @@ -653,21 +655,28 @@ fnprint (to_print) else { #if defined (HANDLE_MULTIBYTE) - tlen = mbrlen (s, end - s, &ps); + tlen = mbrtowc (&wc, s, end - s, &ps); if (MB_INVALIDCH (tlen)) { tlen = 1; + width = 1; memset (&ps, 0, sizeof (mbstate_t)); } else if (MB_NULLWCH (tlen)) break; + else + { + w = wcwidth (wc); + width = (w >= 0) ? w : 1; + } fwrite (s, 1, tlen, rl_outstream); s += tlen; + printed_len += width; #else putc (*s, rl_outstream); s++; -#endif printed_len++; +#endif } } diff --git a/lib/readline/doc/rluser.texi b/lib/readline/doc/rluser.texi index 6fa935075..eccfcd8a2 100644 --- a/lib/readline/doc/rluser.texi +++ b/lib/readline/doc/rluser.texi @@ -1693,6 +1693,12 @@ shell functions specified with @option{-F}. @item nospace Tell Readline not to append a space (the default) to words completed at the end of the line. + +@item plusdirs +After any matches defined by the compspec are generated, +directory name completion is attempted and any +matches are added to the results of the other actions. + @end table @item -A @var{action} diff --git a/lib/readline/doc/rluser.texi~ b/lib/readline/doc/rluser.texi~ new file mode 100644 index 000000000..6fa935075 --- /dev/null +++ b/lib/readline/doc/rluser.texi~ @@ -0,0 +1,1824 @@ +@comment %**start of header (This is for running Texinfo on a region.) +@setfilename rluser.info +@comment %**end of header (This is for running Texinfo on a region.) +@setchapternewpage odd + +@ignore +This file documents the end user interface to the GNU command line +editing features. It is to be an appendix to manuals for programs which +use these features. There is a document entitled "readline.texinfo" +which contains both end-user and programmer documentation for the +GNU Readline Library. + +Copyright (C) 1988-2004 Free Software Foundation, Inc. + +Authored by Brian Fox and Chet Ramey. + +Permission is granted to process this file through Tex and print the +results, provided the printed document carries copying permission notice +identical to this one except for the removal of this paragraph (this +paragraph not being relevant to the printed manual). + +Permission is granted to make and distribute verbatim copies of this manual +provided the copyright notice and this permission notice are preserved on +all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that the +GNU Copyright statement is available to the distributee, and provided that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions. +@end ignore + +@comment If you are including this manual as an appendix, then set the +@comment variable readline-appendix. + +@ifclear BashFeatures +@defcodeindex bt +@end ifclear + +@node Command Line Editing +@chapter Command Line Editing + +This chapter describes the basic features of the @sc{gnu} +command line editing interface. +@ifset BashFeatures +Command line editing is provided by the Readline library, which is +used by several different programs, including Bash. +@end ifset + +@menu +* Introduction and Notation:: Notation used in this text. +* Readline Interaction:: The minimum set of commands for editing a line. +* Readline Init File:: Customizing Readline from a user's view. +* Bindable Readline Commands:: A description of most of the Readline commands + available for binding +* Readline vi Mode:: A short description of how to make Readline + behave like the vi editor. +@ifset BashFeatures +* Programmable Completion:: How to specify the possible completions for + a specific command. +* Programmable Completion Builtins:: Builtin commands to specify how to + complete arguments for a particular command. +@end ifset +@end menu + +@node Introduction and Notation +@section Introduction to Line Editing + +The following paragraphs describe the notation used to represent +keystrokes. + +The text @kbd{C-k} is read as `Control-K' and describes the character +produced when the @key{k} key is pressed while the Control key +is depressed. + +The text @kbd{M-k} is read as `Meta-K' and describes the character +produced when the Meta key (if you have one) is depressed, and the @key{k} +key is pressed. +The Meta key is labeled @key{ALT} on many keyboards. +On keyboards with two keys labeled @key{ALT} (usually to either side of +the space bar), the @key{ALT} on the left side is generally set to +work as a Meta key. +The @key{ALT} key on the right may also be configured to work as a +Meta key or may be configured as some other modifier, such as a +Compose key for typing accented characters. + +If you do not have a Meta or @key{ALT} key, or another key working as +a Meta key, the identical keystroke can be generated by typing @key{ESC} +@emph{first}, and then typing @key{k}. +Either process is known as @dfn{metafying} the @key{k} key. + +The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the +character produced by @dfn{metafying} @kbd{C-k}. + +In addition, several keys have their own names. Specifically, +@key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all +stand for themselves when seen in this text, or in an init file +(@pxref{Readline Init File}). +If your keyboard lacks a @key{LFD} key, typing @key{C-j} will +produce the desired character. +The @key{RET} key may be labeled @key{Return} or @key{Enter} on +some keyboards. + +@node Readline Interaction +@section Readline Interaction +@cindex interaction, readline + +Often during an interactive session you type in a long line of text, +only to notice that the first word on the line is misspelled. The +Readline library gives you a set of commands for manipulating the text +as you type it in, allowing you to just fix your typo, and not forcing +you to retype the majority of the line. Using these editing commands, +you move the cursor to the place that needs correction, and delete or +insert the text of the corrections. Then, when you are satisfied with +the line, you simply press @key{RET}. You do not have to be at the +end of the line to press @key{RET}; the entire line is accepted +regardless of the location of the cursor within the line. + +@menu +* Readline Bare Essentials:: The least you need to know about Readline. +* Readline Movement Commands:: Moving about the input line. +* Readline Killing Commands:: How to delete text, and how to get it back! +* Readline Arguments:: Giving numeric arguments to commands. +* Searching:: Searching through previous lines. +@end menu + +@node Readline Bare Essentials +@subsection Readline Bare Essentials +@cindex notation, readline +@cindex command editing +@cindex editing command lines + +In order to enter characters into the line, simply type them. The typed +character appears where the cursor was, and then the cursor moves one +space to the right. If you mistype a character, you can use your +erase character to back up and delete the mistyped character. + +Sometimes you may mistype a character, and +not notice the error until you have typed several other characters. In +that case, you can type @kbd{C-b} to move the cursor to the left, and then +correct your mistake. Afterwards, you can move the cursor to the right +with @kbd{C-f}. + +When you add text in the middle of a line, you will notice that characters +to the right of the cursor are `pushed over' to make room for the text +that you have inserted. Likewise, when you delete text behind the cursor, +characters to the right of the cursor are `pulled back' to fill in the +blank space created by the removal of the text. A list of the bare +essentials for editing the text of an input line follows. + +@table @asis +@item @kbd{C-b} +Move back one character. +@item @kbd{C-f} +Move forward one character. +@item @key{DEL} or @key{Backspace} +Delete the character to the left of the cursor. +@item @kbd{C-d} +Delete the character underneath the cursor. +@item @w{Printing characters} +Insert the character into the line at the cursor. +@item @kbd{C-_} or @kbd{C-x C-u} +Undo the last editing command. You can undo all the way back to an +empty line. +@end table + +@noindent +(Depending on your configuration, the @key{Backspace} key be set to +delete the character to the left of the cursor and the @key{DEL} key set +to delete the character underneath the cursor, like @kbd{C-d}, rather +than the character to the left of the cursor.) + +@node Readline Movement Commands +@subsection Readline Movement Commands + + +The above table describes the most basic keystrokes that you need +in order to do editing of the input line. For your convenience, many +other commands have been added in addition to @kbd{C-b}, @kbd{C-f}, +@kbd{C-d}, and @key{DEL}. Here are some commands for moving more rapidly +about the line. + +@table @kbd +@item C-a +Move to the start of the line. +@item C-e +Move to the end of the line. +@item M-f +Move forward a word, where a word is composed of letters and digits. +@item M-b +Move backward a word. +@item C-l +Clear the screen, reprinting the current line at the top. +@end table + +Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves +forward a word. It is a loose convention that control keystrokes +operate on characters while meta keystrokes operate on words. + +@node Readline Killing Commands +@subsection Readline Killing Commands + +@cindex killing text +@cindex yanking text + +@dfn{Killing} text means to delete the text from the line, but to save +it away for later use, usually by @dfn{yanking} (re-inserting) +it back into the line. +(`Cut' and `paste' are more recent jargon for `kill' and `yank'.) + +If the description for a command says that it `kills' text, then you can +be sure that you can get the text back in a different (or the same) +place later. + +When you use a kill command, the text is saved in a @dfn{kill-ring}. +Any number of consecutive kills save all of the killed text together, so +that when you yank it back, you get it all. The kill +ring is not line specific; the text that you killed on a previously +typed line is available to be yanked back later, when you are typing +another line. +@cindex kill ring + +Here is the list of commands for killing text. + +@table @kbd +@item C-k +Kill the text from the current cursor position to the end of the line. + +@item M-d +Kill from the cursor to the end of the current word, or, if between +words, to the end of the next word. +Word boundaries are the same as those used by @kbd{M-f}. + +@item M-@key{DEL} +Kill from the cursor the start of the current word, or, if between +words, to the start of the previous word. +Word boundaries are the same as those used by @kbd{M-b}. + +@item C-w +Kill from the cursor to the previous whitespace. This is different than +@kbd{M-@key{DEL}} because the word boundaries differ. + +@end table + +Here is how to @dfn{yank} the text back into the line. Yanking +means to copy the most-recently-killed text from the kill buffer. + +@table @kbd +@item C-y +Yank the most recently killed text back into the buffer at the cursor. + +@item M-y +Rotate the kill-ring, and yank the new top. You can only do this if +the prior command is @kbd{C-y} or @kbd{M-y}. +@end table + +@node Readline Arguments +@subsection Readline Arguments + +You can pass numeric arguments to Readline commands. Sometimes the +argument acts as a repeat count, other times it is the @i{sign} of the +argument that is significant. If you pass a negative argument to a +command which normally acts in a forward direction, that command will +act in a backward direction. For example, to kill text back to the +start of the line, you might type @samp{M-- C-k}. + +The general way to pass numeric arguments to a command is to type meta +digits before the command. If the first `digit' typed is a minus +sign (@samp{-}), then the sign of the argument will be negative. Once +you have typed one meta digit to get the argument started, you can type +the remainder of the digits, and then the command. For example, to give +the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d}, +which will delete the next ten characters on the input line. + +@node Searching +@subsection Searching for Commands in the History + +Readline provides commands for searching through the command history +@ifset BashFeatures +(@pxref{Bash History Facilities}) +@end ifset +for lines containing a specified string. +There are two search modes: @dfn{incremental} and @dfn{non-incremental}. + +Incremental searches begin before the user has finished typing the +search string. +As each character of the search string is typed, Readline displays +the next entry from the history matching the string typed so far. +An incremental search requires only as many characters as needed to +find the desired history entry. +To search backward in the history for a particular string, type +@kbd{C-r}. Typing @kbd{C-s} searches forward through the history. +The characters present in the value of the @code{isearch-terminators} variable +are used to terminate an incremental search. +If that variable has not been assigned a value, the @key{ESC} and +@kbd{C-J} characters will terminate an incremental search. +@kbd{C-g} will abort an incremental search and restore the original line. +When the search is terminated, the history entry containing the +search string becomes the current line. + +To find other matching entries in the history list, type @kbd{C-r} or +@kbd{C-s} as appropriate. +This will search backward or forward in the history for the next +entry matching the search string typed so far. +Any other key sequence bound to a Readline command will terminate +the search and execute that command. +For instance, a @key{RET} will terminate the search and accept +the line, thereby executing the command from the history list. +A movement command will terminate the search, make the last line found +the current line, and begin editing. + +Readline remembers the last incremental search string. If two +@kbd{C-r}s are typed without any intervening characters defining a new +search string, any remembered search string is used. + +Non-incremental searches read the entire search string before starting +to search for matching history lines. The search string may be +typed by the user or be part of the contents of the current line. + +@node Readline Init File +@section Readline Init File +@cindex initialization file, readline + +Although the Readline library comes with a set of Emacs-like +keybindings installed by default, it is possible to use a different set +of keybindings. +Any user can customize programs that use Readline by putting +commands in an @dfn{inputrc} file, conventionally in his home directory. +The name of this +@ifset BashFeatures +file is taken from the value of the shell variable @env{INPUTRC}. If +@end ifset +@ifclear BashFeatures +file is taken from the value of the environment variable @env{INPUTRC}. If +@end ifclear +that variable is unset, the default is @file{~/.inputrc}. + +When a program which uses the Readline library starts up, the +init file is read, and the key bindings are set. + +In addition, the @code{C-x C-r} command re-reads this init file, thus +incorporating any changes that you might have made to it. + +@menu +* Readline Init File Syntax:: Syntax for the commands in the inputrc file. + +* Conditional Init Constructs:: Conditional key bindings in the inputrc file. + +* Sample Init File:: An example inputrc file. +@end menu + +@node Readline Init File Syntax +@subsection Readline Init File Syntax + +There are only a few basic constructs allowed in the +Readline init file. Blank lines are ignored. +Lines beginning with a @samp{#} are comments. +Lines beginning with a @samp{$} indicate conditional +constructs (@pxref{Conditional Init Constructs}). Other lines +denote variable settings and key bindings. + +@table @asis +@item Variable Settings +You can modify the run-time behavior of Readline by +altering the values of variables in Readline +using the @code{set} command within the init file. +The syntax is simple: + +@example +set @var{variable} @var{value} +@end example + +@noindent +Here, for example, is how to +change from the default Emacs-like key binding to use +@code{vi} line editing commands: + +@example +set editing-mode vi +@end example + +Variable names and values, where appropriate, are recognized without regard +to case. + +@ifset BashFeatures +The @w{@code{bind -V}} command lists the current Readline variable names +and values. @xref{Bash Builtins}. +@end ifset + +A great deal of run-time behavior is changeable with the following +variables. + +@cindex variables, readline +@table @code + +@item bell-style +@vindex bell-style +Controls what happens when Readline wants to ring the terminal bell. +If set to @samp{none}, Readline never rings the bell. If set to +@samp{visible}, Readline uses a visible bell if one is available. +If set to @samp{audible} (the default), Readline attempts to ring +the terminal's bell. + +@item comment-begin +@vindex comment-begin +The string to insert at the beginning of the line when the +@code{insert-comment} command is executed. The default value +is @code{"#"}. + +@item completion-ignore-case +If set to @samp{on}, Readline performs filename matching and completion +in a case-insensitive fashion. +The default value is @samp{off}. + +@item completion-query-items +@vindex completion-query-items +The number of possible completions that determines when the user is +asked whether the list of possibilities should be displayed. +If the number of possible completions is greater than this value, +Readline will ask the user whether or not he wishes to view +them; otherwise, they are simply listed. +This variable must be set to an integer value greater than or equal to 0. +The default limit is @code{100}. + +@item convert-meta +@vindex convert-meta +If set to @samp{on}, Readline will convert characters with the +eighth bit set to an @sc{ascii} key sequence by stripping the eighth +bit and prefixing an @key{ESC} character, converting them to a +meta-prefixed key sequence. The default value is @samp{on}. + +@item disable-completion +@vindex disable-completion +If set to @samp{On}, Readline will inhibit word completion. +Completion characters will be inserted into the line as if they had +been mapped to @code{self-insert}. The default is @samp{off}. + +@item editing-mode +@vindex editing-mode +The @code{editing-mode} variable controls which default set of +key bindings is used. By default, Readline starts up in Emacs editing +mode, where the keystrokes are most similar to Emacs. This variable can be +set to either @samp{emacs} or @samp{vi}. + +@item enable-keypad +@vindex enable-keypad +When set to @samp{on}, Readline will try to enable the application +keypad when it is called. Some systems need this to enable the +arrow keys. The default is @samp{off}. + +@item expand-tilde +@vindex expand-tilde +If set to @samp{on}, tilde expansion is performed when Readline +attempts word completion. The default is @samp{off}. + +@vindex history-preserve-point +If set to @samp{on}, the history code attempts to place point at the +same location on each history line retrieved with @code{previous-history} +or @code{next-history}. + +@item horizontal-scroll-mode +@vindex horizontal-scroll-mode +This variable can be set to either @samp{on} or @samp{off}. Setting it +to @samp{on} means that the text of the lines being edited will scroll +horizontally on a single screen line when they are longer than the width +of the screen, instead of wrapping onto a new screen line. By default, +this variable is set to @samp{off}. + +@item input-meta +@vindex input-meta +@vindex meta-flag +If set to @samp{on}, Readline will enable eight-bit input (it +will not clear the eighth bit in the characters it reads), +regardless of what the terminal claims it can support. The +default value is @samp{off}. The name @code{meta-flag} is a +synonym for this variable. + +@item isearch-terminators +@vindex isearch-terminators +The string of characters that should terminate an incremental search without +subsequently executing the character as a command (@pxref{Searching}). +If this variable has not been given a value, the characters @key{ESC} and +@kbd{C-J} will terminate an incremental search. + +@item keymap +@vindex keymap +Sets Readline's idea of the current keymap for key binding commands. +Acceptable @code{keymap} names are +@code{emacs}, +@code{emacs-standard}, +@code{emacs-meta}, +@code{emacs-ctlx}, +@code{vi}, +@code{vi-move}, +@code{vi-command}, and +@code{vi-insert}. +@code{vi} is equivalent to @code{vi-command}; @code{emacs} is +equivalent to @code{emacs-standard}. The default value is @code{emacs}. +The value of the @code{editing-mode} variable also affects the +default keymap. + +@item mark-directories +If set to @samp{on}, completed directory names have a slash +appended. The default is @samp{on}. + +@item mark-modified-lines +@vindex mark-modified-lines +This variable, when set to @samp{on}, causes Readline to display an +asterisk (@samp{*}) at the start of history lines which have been modified. +This variable is @samp{off} by default. + +@item mark-symlinked-directories +@vindex mark-symlinked-directories +If set to @samp{on}, completed names which are symbolic links +to directories have a slash appended (subject to the value of +@code{mark-directories}). +The default is @samp{off}. + +@item match-hidden-files +@vindex match-hidden-files +This variable, when set to @samp{on}, causes Readline to match files whose +names begin with a @samp{.} (hidden files) when performing filename +completion, unless the leading @samp{.} is +supplied by the user in the filename to be completed. +This variable is @samp{on} by default. + +@item output-meta +@vindex output-meta +If set to @samp{on}, Readline will display characters with the +eighth bit set directly rather than as a meta-prefixed escape +sequence. The default is @samp{off}. + +@item page-completions +@vindex page-completions +If set to @samp{on}, Readline uses an internal @code{more}-like pager +to display a screenful of possible completions at a time. +This variable is @samp{on} by default. + +@item print-completions-horizontally +If set to @samp{on}, Readline will display completions with matches +sorted horizontally in alphabetical order, rather than down the screen. +The default is @samp{off}. + +@item show-all-if-ambiguous +@vindex show-all-if-ambiguous +This alters the default behavior of the completion functions. If +set to @samp{on}, +words which have more than one possible completion cause the +matches to be listed immediately instead of ringing the bell. +The default value is @samp{off}. + +@item show-all-if-unmodified +@vindex show-all-if-unmodified +This alters the default behavior of the completion functions in +a fashion similar to @var{show-all-if-ambiguous}. +If set to @samp{on}, +words which have more than one possible completion without any +possible partial completion (the possible completions don't share +a common prefix) cause the matches to be listed immediately instead +of ringing the bell. +The default value is @samp{off}. + +@item visible-stats +@vindex visible-stats +If set to @samp{on}, a character denoting a file's type +is appended to the filename when listing possible +completions. The default is @samp{off}. + +@end table + +@item Key Bindings +The syntax for controlling key bindings in the init file is +simple. First you need to find the name of the command that you +want to change. The following sections contain tables of the command +name, the default keybinding, if any, and a short description of what +the command does. + +Once you know the name of the command, simply place on a line +in the init file the name of the key +you wish to bind the command to, a colon, and then the name of the +command. The name of the key +can be expressed in different ways, depending on what you find most +comfortable. + +In addition to command names, readline allows keys to be bound +to a string that is inserted when the key is pressed (a @var{macro}). + +@ifset BashFeatures +The @w{@code{bind -p}} command displays Readline function names and +bindings in a format that can put directly into an initialization file. +@xref{Bash Builtins}. +@end ifset + +@table @asis +@item @w{@var{keyname}: @var{function-name} or @var{macro}} +@var{keyname} is the name of a key spelled out in English. For example: +@example +Control-u: universal-argument +Meta-Rubout: backward-kill-word +Control-o: "> output" +@end example + +In the above example, @kbd{C-u} is bound to the function +@code{universal-argument}, +@kbd{M-DEL} is bound to the function @code{backward-kill-word}, and +@kbd{C-o} is bound to run the macro +expressed on the right hand side (that is, to insert the text +@samp{> output} into the line). + +A number of symbolic character names are recognized while +processing this key binding syntax: +@var{DEL}, +@var{ESC}, +@var{ESCAPE}, +@var{LFD}, +@var{NEWLINE}, +@var{RET}, +@var{RETURN}, +@var{RUBOUT}, +@var{SPACE}, +@var{SPC}, +and +@var{TAB}. + +@item @w{"@var{keyseq}": @var{function-name} or @var{macro}} +@var{keyseq} differs from @var{keyname} above in that strings +denoting an entire key sequence can be specified, by placing +the key sequence in double quotes. Some @sc{gnu} Emacs style key +escapes can be used, as in the following example, but the +special character names are not recognized. + +@example +"\C-u": universal-argument +"\C-x\C-r": re-read-init-file +"\e[11~": "Function Key 1" +@end example + +In the above example, @kbd{C-u} is again bound to the function +@code{universal-argument} (just as it was in the first example), +@samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file}, +and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert +the text @samp{Function Key 1}. + +@end table + +The following @sc{gnu} Emacs style escape sequences are available when +specifying key sequences: + +@table @code +@item @kbd{\C-} +control prefix +@item @kbd{\M-} +meta prefix +@item @kbd{\e} +an escape character +@item @kbd{\\} +backslash +@item @kbd{\"} +@key{"}, a double quotation mark +@item @kbd{\'} +@key{'}, a single quote or apostrophe +@end table + +In addition to the @sc{gnu} Emacs style escape sequences, a second +set of backslash escapes is available: + +@table @code +@item \a +alert (bell) +@item \b +backspace +@item \d +delete +@item \f +form feed +@item \n +newline +@item \r +carriage return +@item \t +horizontal tab +@item \v +vertical tab +@item \@var{nnn} +the eight-bit character whose value is the octal value @var{nnn} +(one to three digits) +@item \x@var{HH} +the eight-bit character whose value is the hexadecimal value @var{HH} +(one or two hex digits) +@end table + +When entering the text of a macro, single or double quotes must +be used to indicate a macro definition. +Unquoted text is assumed to be a function name. +In the macro body, the backslash escapes described above are expanded. +Backslash will quote any other character in the macro text, +including @samp{"} and @samp{'}. +For example, the following binding will make @samp{@kbd{C-x} \} +insert a single @samp{\} into the line: +@example +"\C-x\\": "\\" +@end example + +@end table + +@node Conditional Init Constructs +@subsection Conditional Init Constructs + +Readline implements a facility similar in spirit to the conditional +compilation features of the C preprocessor which allows key +bindings and variable settings to be performed as the result +of tests. There are four parser directives used. + +@table @code +@item $if +The @code{$if} construct allows bindings to be made based on the +editing mode, the terminal being used, or the application using +Readline. The text of the test extends to the end of the line; +no characters are required to isolate it. + +@table @code +@item mode +The @code{mode=} form of the @code{$if} directive is used to test +whether Readline is in @code{emacs} or @code{vi} mode. +This may be used in conjunction +with the @samp{set keymap} command, for instance, to set bindings in +the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if +Readline is starting out in @code{emacs} mode. + +@item term +The @code{term=} form may be used to include terminal-specific +key bindings, perhaps to bind the key sequences output by the +terminal's function keys. The word on the right side of the +@samp{=} is tested against both the full name of the terminal and +the portion of the terminal name before the first @samp{-}. This +allows @code{sun} to match both @code{sun} and @code{sun-cmd}, +for instance. + +@item application +The @var{application} construct is used to include +application-specific settings. Each program using the Readline +library sets the @var{application name}, and you can test for +a particular value. +This could be used to bind key sequences to functions useful for +a specific program. For instance, the following command adds a +key sequence that quotes the current or previous word in Bash: +@example +$if Bash +# Quote the current or previous word +"\C-xq": "\eb\"\ef\"" +$endif +@end example +@end table + +@item $endif +This command, as seen in the previous example, terminates an +@code{$if} command. + +@item $else +Commands in this branch of the @code{$if} directive are executed if +the test fails. + +@item $include +This directive takes a single filename as an argument and reads commands +and bindings from that file. +For example, the following directive reads from @file{/etc/inputrc}: +@example +$include /etc/inputrc +@end example +@end table + +@node Sample Init File +@subsection Sample Init File + +Here is an example of an @var{inputrc} file. This illustrates key +binding, variable assignment, and conditional syntax. + +@example +@page +# This file controls the behaviour of line input editing for +# programs that use the GNU Readline library. Existing +# programs include FTP, Bash, and GDB. +# +# You can re-read the inputrc file with C-x C-r. +# Lines beginning with '#' are comments. +# +# First, include any systemwide bindings and variable +# assignments from /etc/Inputrc +$include /etc/Inputrc + +# +# Set various bindings for emacs mode. + +set editing-mode emacs + +$if mode=emacs + +Meta-Control-h: backward-kill-word Text after the function name is ignored + +# +# Arrow keys in keypad mode +# +#"\M-OD": backward-char +#"\M-OC": forward-char +#"\M-OA": previous-history +#"\M-OB": next-history +# +# Arrow keys in ANSI mode +# +"\M-[D": backward-char +"\M-[C": forward-char +"\M-[A": previous-history +"\M-[B": next-history +# +# Arrow keys in 8 bit keypad mode +# +#"\M-\C-OD": backward-char +#"\M-\C-OC": forward-char +#"\M-\C-OA": previous-history +#"\M-\C-OB": next-history +# +# Arrow keys in 8 bit ANSI mode +# +#"\M-\C-[D": backward-char +#"\M-\C-[C": forward-char +#"\M-\C-[A": previous-history +#"\M-\C-[B": next-history + +C-q: quoted-insert + +$endif + +# An old-style binding. This happens to be the default. +TAB: complete + +# Macros that are convenient for shell interaction +$if Bash +# edit the path +"\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f" +# prepare to type a quoted word -- +# insert open and close double quotes +# and move to just after the open quote +"\C-x\"": "\"\"\C-b" +# insert a backslash (testing backslash escapes +# in sequences and macros) +"\C-x\\": "\\" +# Quote the current or previous word +"\C-xq": "\eb\"\ef\"" +# Add a binding to refresh the line, which is unbound +"\C-xr": redraw-current-line +# Edit variable on current line. +"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" +$endif + +# use a visible bell if one is available +set bell-style visible + +# don't strip characters to 7 bits when reading +set input-meta on + +# allow iso-latin1 characters to be inserted rather +# than converted to prefix-meta sequences +set convert-meta off + +# display characters with the eighth bit set directly +# rather than as meta-prefixed characters +set output-meta on + +# if there are more than 150 possible completions for +# a word, ask the user if he wants to see all of them +set completion-query-items 150 + +# For FTP +$if Ftp +"\C-xg": "get \M-?" +"\C-xt": "put \M-?" +"\M-.": yank-last-arg +$endif +@end example + +@node Bindable Readline Commands +@section Bindable Readline Commands + +@menu +* Commands For Moving:: Moving about the line. +* Commands For History:: Getting at previous lines. +* Commands For Text:: Commands for changing text. +* Commands For Killing:: Commands for killing and yanking. +* Numeric Arguments:: Specifying numeric arguments, repeat counts. +* Commands For Completion:: Getting Readline to do the typing for you. +* Keyboard Macros:: Saving and re-executing typed characters +* Miscellaneous Commands:: Other miscellaneous commands. +@end menu + +This section describes Readline commands that may be bound to key +sequences. +@ifset BashFeatures +You can list your key bindings by executing +@w{@code{bind -P}} or, for a more terse format, suitable for an +@var{inputrc} file, @w{@code{bind -p}}. (@xref{Bash Builtins}.) +@end ifset +Command names without an accompanying key sequence are unbound by default. + +In the following descriptions, @dfn{point} refers to the current cursor +position, and @dfn{mark} refers to a cursor position saved by the +@code{set-mark} command. +The text between the point and mark is referred to as the @dfn{region}. + +@node Commands For Moving +@subsection Commands For Moving +@ftable @code +@item beginning-of-line (C-a) +Move to the start of the current line. + +@item end-of-line (C-e) +Move to the end of the line. + +@item forward-char (C-f) +Move forward a character. + +@item backward-char (C-b) +Move back a character. + +@item forward-word (M-f) +Move forward to the end of the next word. Words are composed of +letters and digits. + +@item backward-word (M-b) +Move back to the start of the current or previous word. Words are +composed of letters and digits. + +@item clear-screen (C-l) +Clear the screen and redraw the current line, +leaving the current line at the top of the screen. + +@item redraw-current-line () +Refresh the current line. By default, this is unbound. + +@end ftable + +@node Commands For History +@subsection Commands For Manipulating The History + +@ftable @code +@item accept-line (Newline or Return) +@ifset BashFeatures +Accept the line regardless of where the cursor is. +If this line is +non-empty, add it to the history list according to the setting of +the @env{HISTCONTROL} and @env{HISTIGNORE} variables. +If this line is a modified history line, then restore the history line +to its original state. +@end ifset +@ifclear BashFeatures +Accept the line regardless of where the cursor is. +If this line is +non-empty, it may be added to the history list for future recall with +@code{add_history()}. +If this line is a modified history line, the history line is restored +to its original state. +@end ifclear + +@item previous-history (C-p) +Move `back' through the history list, fetching the previous command. + +@item next-history (C-n) +Move `forward' through the history list, fetching the next command. + +@item beginning-of-history (M-<) +Move to the first line in the history. + +@item end-of-history (M->) +Move to the end of the input history, i.e., the line currently +being entered. + +@item reverse-search-history (C-r) +Search backward starting at the current line and moving `up' through +the history as necessary. This is an incremental search. + +@item forward-search-history (C-s) +Search forward starting at the current line and moving `down' through +the the history as necessary. This is an incremental search. + +@item non-incremental-reverse-search-history (M-p) +Search backward starting at the current line and moving `up' +through the history as necessary using a non-incremental search +for a string supplied by the user. + +@item non-incremental-forward-search-history (M-n) +Search forward starting at the current line and moving `down' +through the the history as necessary using a non-incremental search +for a string supplied by the user. + +@item history-search-forward () +Search forward through the history for the string of characters +between the start of the current line and the point. +This is a non-incremental search. +By default, this command is unbound. + +@item history-search-backward () +Search backward through the history for the string of characters +between the start of the current line and the point. This +is a non-incremental search. By default, this command is unbound. + +@item yank-nth-arg (M-C-y) +Insert the first argument to the previous command (usually +the second word on the previous line) at point. +With an argument @var{n}, +insert the @var{n}th word from the previous command (the words +in the previous command begin with word 0). A negative argument +inserts the @var{n}th word from the end of the previous command. + +@item yank-last-arg (M-. or M-_) +Insert last argument to the previous command (the last word of the +previous history entry). With an +argument, behave exactly like @code{yank-nth-arg}. +Successive calls to @code{yank-last-arg} move back through the history +list, inserting the last argument of each line in turn. + +@end ftable + +@node Commands For Text +@subsection Commands For Changing Text + +@ftable @code +@item delete-char (C-d) +Delete the character at point. If point is at the +beginning of the line, there are no characters in the line, and +the last character typed was not bound to @code{delete-char}, then +return @sc{eof}. + +@item backward-delete-char (Rubout) +Delete the character behind the cursor. A numeric argument means +to kill the characters instead of deleting them. + +@item forward-backward-delete-char () +Delete the character under the cursor, unless the cursor is at the +end of the line, in which case the character behind the cursor is +deleted. By default, this is not bound to a key. + +@item quoted-insert (C-q or C-v) +Add the next character typed to the line verbatim. This is +how to insert key sequences like @kbd{C-q}, for example. + +@ifclear BashFeatures +@item tab-insert (M-@key{TAB}) +Insert a tab character. +@end ifclear + +@item self-insert (a, b, A, 1, !, @dots{}) +Insert yourself. + +@item transpose-chars (C-t) +Drag the character before the cursor forward over +the character at the cursor, moving the +cursor forward as well. If the insertion point +is at the end of the line, then this +transposes the last two characters of the line. +Negative arguments have no effect. + +@item transpose-words (M-t) +Drag the word before point past the word after point, +moving point past that word as well. +If the insertion point is at the end of the line, this transposes +the last two words on the line. + +@item upcase-word (M-u) +Uppercase the current (or following) word. With a negative argument, +uppercase the previous word, but do not move the cursor. + +@item downcase-word (M-l) +Lowercase the current (or following) word. With a negative argument, +lowercase the previous word, but do not move the cursor. + +@item capitalize-word (M-c) +Capitalize the current (or following) word. With a negative argument, +capitalize the previous word, but do not move the cursor. + +@item overwrite-mode () +Toggle overwrite mode. With an explicit positive numeric argument, +switches to overwrite mode. With an explicit non-positive numeric +argument, switches to insert mode. This command affects only +@code{emacs} mode; @code{vi} mode does overwrite differently. +Each call to @code{readline()} starts in insert mode. + +In overwrite mode, characters bound to @code{self-insert} replace +the text at point rather than pushing the text to the right. +Characters bound to @code{backward-delete-char} replace the character +before point with a space. + +By default, this command is unbound. + +@end ftable + +@node Commands For Killing +@subsection Killing And Yanking + +@ftable @code + +@item kill-line (C-k) +Kill the text from point to the end of the line. + +@item backward-kill-line (C-x Rubout) +Kill backward to the beginning of the line. + +@item unix-line-discard (C-u) +Kill backward from the cursor to the beginning of the current line. + +@item kill-whole-line () +Kill all characters on the current line, no matter where point is. +By default, this is unbound. + +@item kill-word (M-d) +Kill from point to the end of the current word, or if between +words, to the end of the next word. +Word boundaries are the same as @code{forward-word}. + +@item backward-kill-word (M-@key{DEL}) +Kill the word behind point. +Word boundaries are the same as @code{backward-word}. + +@item unix-word-rubout (C-w) +Kill the word behind point, using white space as a word boundary. +The killed text is saved on the kill-ring. + +@item unix-filename-rubout () +Kill the word behind point, using white space and the slash character +as the word boundaries. +The killed text is saved on the kill-ring. + +@item delete-horizontal-space () +Delete all spaces and tabs around point. By default, this is unbound. + +@item kill-region () +Kill the text in the current region. +By default, this command is unbound. + +@item copy-region-as-kill () +Copy the text in the region to the kill buffer, so it can be yanked +right away. By default, this command is unbound. + +@item copy-backward-word () +Copy the word before point to the kill buffer. +The word boundaries are the same as @code{backward-word}. +By default, this command is unbound. + +@item copy-forward-word () +Copy the word following point to the kill buffer. +The word boundaries are the same as @code{forward-word}. +By default, this command is unbound. + +@item yank (C-y) +Yank the top of the kill ring into the buffer at point. + +@item yank-pop (M-y) +Rotate the kill-ring, and yank the new top. You can only do this if +the prior command is @code{yank} or @code{yank-pop}. +@end ftable + +@node Numeric Arguments +@subsection Specifying Numeric Arguments +@ftable @code + +@item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--}) +Add this digit to the argument already accumulating, or start a new +argument. @kbd{M--} starts a negative argument. + +@item universal-argument () +This is another way to specify an argument. +If this command is followed by one or more digits, optionally with a +leading minus sign, those digits define the argument. +If the command is followed by digits, executing @code{universal-argument} +again ends the numeric argument, but is otherwise ignored. +As a special case, if this command is immediately followed by a +character that is neither a digit or minus sign, the argument count +for the next command is multiplied by four. +The argument count is initially one, so executing this function the +first time makes the argument count four, a second time makes the +argument count sixteen, and so on. +By default, this is not bound to a key. +@end ftable + +@node Commands For Completion +@subsection Letting Readline Type For You + +@ftable @code +@item complete (@key{TAB}) +Attempt to perform completion on the text before point. +The actual completion performed is application-specific. +@ifset BashFeatures +Bash attempts completion treating the text as a variable (if the +text begins with @samp{$}), username (if the text begins with +@samp{~}), hostname (if the text begins with @samp{@@}), or +command (including aliases and functions) in turn. If none +of these produces a match, filename completion is attempted. +@end ifset +@ifclear BashFeatures +The default is filename completion. +@end ifclear + +@item possible-completions (M-?) +List the possible completions of the text before point. + +@item insert-completions (M-*) +Insert all completions of the text before point that would have +been generated by @code{possible-completions}. + +@item menu-complete () +Similar to @code{complete}, but replaces the word to be completed +with a single match from the list of possible completions. +Repeated execution of @code{menu-complete} steps through the list +of possible completions, inserting each match in turn. +At the end of the list of completions, the bell is rung +(subject to the setting of @code{bell-style}) +and the original text is restored. +An argument of @var{n} moves @var{n} positions forward in the list +of matches; a negative argument may be used to move backward +through the list. +This command is intended to be bound to @key{TAB}, but is unbound +by default. + +@item delete-char-or-list () +Deletes the character under the cursor if not at the beginning or +end of the line (like @code{delete-char}). +If at the end of the line, behaves identically to +@code{possible-completions}. +This command is unbound by default. + +@ifset BashFeatures +@item complete-filename (M-/) +Attempt filename completion on the text before point. + +@item possible-filename-completions (C-x /) +List the possible completions of the text before point, +treating it as a filename. + +@item complete-username (M-~) +Attempt completion on the text before point, treating +it as a username. + +@item possible-username-completions (C-x ~) +List the possible completions of the text before point, +treating it as a username. + +@item complete-variable (M-$) +Attempt completion on the text before point, treating +it as a shell variable. + +@item possible-variable-completions (C-x $) +List the possible completions of the text before point, +treating it as a shell variable. + +@item complete-hostname (M-@@) +Attempt completion on the text before point, treating +it as a hostname. + +@item possible-hostname-completions (C-x @@) +List the possible completions of the text before point, +treating it as a hostname. + +@item complete-command (M-!) +Attempt completion on the text before point, treating +it as a command name. Command completion attempts to +match the text against aliases, reserved words, shell +functions, shell builtins, and finally executable filenames, +in that order. + +@item possible-command-completions (C-x !) +List the possible completions of the text before point, +treating it as a command name. + +@item dynamic-complete-history (M-@key{TAB}) +Attempt completion on the text before point, comparing +the text against lines from the history list for possible +completion matches. + +@item complete-into-braces (M-@{) +Perform filename completion and insert the list of possible completions +enclosed within braces so the list is available to the shell +(@pxref{Brace Expansion}). + +@end ifset +@end ftable + +@node Keyboard Macros +@subsection Keyboard Macros +@ftable @code + +@item start-kbd-macro (C-x () +Begin saving the characters typed into the current keyboard macro. + +@item end-kbd-macro (C-x )) +Stop saving the characters typed into the current keyboard macro +and save the definition. + +@item call-last-kbd-macro (C-x e) +Re-execute the last keyboard macro defined, by making the characters +in the macro appear as if typed at the keyboard. + +@end ftable + +@node Miscellaneous Commands +@subsection Some Miscellaneous Commands +@ftable @code + +@item re-read-init-file (C-x C-r) +Read in the contents of the @var{inputrc} file, and incorporate +any bindings or variable assignments found there. + +@item abort (C-g) +Abort the current editing command and +ring the terminal's bell (subject to the setting of +@code{bell-style}). + +@item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{}) +If the metafied character @var{x} is lowercase, run the command +that is bound to the corresponding uppercase character. + +@item prefix-meta (@key{ESC}) +Metafy the next character typed. This is for keyboards +without a meta key. Typing @samp{@key{ESC} f} is equivalent to typing +@kbd{M-f}. + +@item undo (C-_ or C-x C-u) +Incremental undo, separately remembered for each line. + +@item revert-line (M-r) +Undo all changes made to this line. This is like executing the @code{undo} +command enough times to get back to the beginning. + +@ifset BashFeatures +@item tilde-expand (M-&) +@end ifset +@ifclear BashFeatures +@item tilde-expand (M-~) +@end ifclear +Perform tilde expansion on the current word. + +@item set-mark (C-@@) +Set the mark to the point. If a +numeric argument is supplied, the mark is set to that position. + +@item exchange-point-and-mark (C-x C-x) +Swap the point with the mark. The current cursor position is set to +the saved position, and the old cursor position is saved as the mark. + +@item character-search (C-]) +A character is read and point is moved to the next occurrence of that +character. A negative count searches for previous occurrences. + +@item character-search-backward (M-C-]) +A character is read and point is moved to the previous occurrence +of that character. A negative count searches for subsequent +occurrences. + +@item insert-comment (M-#) +Without a numeric argument, the value of the @code{comment-begin} +variable is inserted at the beginning of the current line. +If a numeric argument is supplied, this command acts as a toggle: if +the characters at the beginning of the line do not match the value +of @code{comment-begin}, the value is inserted, otherwise +the characters in @code{comment-begin} are deleted from the beginning of +the line. +In either case, the line is accepted as if a newline had been typed. +@ifset BashFeatures +The default value of @code{comment-begin} causes this command +to make the current line a shell comment. +If a numeric argument causes the comment character to be removed, the line +will be executed by the shell. +@end ifset + +@item dump-functions () +Print all of the functions and their key bindings to the +Readline output stream. If a numeric argument is supplied, +the output is formatted in such a way that it can be made part +of an @var{inputrc} file. This command is unbound by default. + +@item dump-variables () +Print all of the settable variables and their values to the +Readline output stream. If a numeric argument is supplied, +the output is formatted in such a way that it can be made part +of an @var{inputrc} file. This command is unbound by default. + +@item dump-macros () +Print all of the Readline key sequences bound to macros and the +strings they output. If a numeric argument is supplied, +the output is formatted in such a way that it can be made part +of an @var{inputrc} file. This command is unbound by default. + +@ifset BashFeatures +@item glob-complete-word (M-g) +The word before point is treated as a pattern for pathname expansion, +with an asterisk implicitly appended. This pattern is used to +generate a list of matching file names for possible completions. + +@item glob-expand-word (C-x *) +The word before point is treated as a pattern for pathname expansion, +and the list of matching file names is inserted, replacing the word. +If a numeric argument is supplied, a @samp{*} is appended before +pathname expansion. + +@item glob-list-expansions (C-x g) +The list of expansions that would have been generated by +@code{glob-expand-word} is displayed, and the line is redrawn. +If a numeric argument is supplied, a @samp{*} is appended before +pathname expansion. + +@item display-shell-version (C-x C-v) +Display version information about the current instance of Bash. + +@item shell-expand-line (M-C-e) +Expand the line as the shell does. +This performs alias and history expansion as well as all of the shell +word expansions (@pxref{Shell Expansions}). + +@item history-expand-line (M-^) +Perform history expansion on the current line. + +@item magic-space () +Perform history expansion on the current line and insert a space +(@pxref{History Interaction}). + +@item alias-expand-line () +Perform alias expansion on the current line (@pxref{Aliases}). + +@item history-and-alias-expand-line () +Perform history and alias expansion on the current line. + +@item insert-last-argument (M-. or M-_) +A synonym for @code{yank-last-arg}. + +@item operate-and-get-next (C-o) +Accept the current line for execution and fetch the next line +relative to the current line from the history for editing. Any +argument is ignored. + +@item edit-and-execute-command (C-xC-e) +Invoke an editor on the current command line, and execute the result as shell +commands. +Bash attempts to invoke +@code{$VISUAL}, @code{$EDITOR}, and @code{emacs} +as the editor, in that order. + +@end ifset + +@ifclear BashFeatures +@item emacs-editing-mode (C-e) +When in @code{vi} command mode, this causes a switch to @code{emacs} +editing mode. + +@item vi-editing-mode (M-C-j) +When in @code{emacs} editing mode, this causes a switch to @code{vi} +editing mode. + +@end ifclear + +@end ftable + +@node Readline vi Mode +@section Readline vi Mode + +While the Readline library does not have a full set of @code{vi} +editing functions, it does contain enough to allow simple editing +of the line. The Readline @code{vi} mode behaves as specified in +the @sc{posix} 1003.2 standard. + +@ifset BashFeatures +In order to switch interactively between @code{emacs} and @code{vi} +editing modes, use the @samp{set -o emacs} and @samp{set -o vi} +commands (@pxref{The Set Builtin}). +@end ifset +@ifclear BashFeatures +In order to switch interactively between @code{emacs} and @code{vi} +editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode +when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode). +@end ifclear +The Readline default is @code{emacs} mode. + +When you enter a line in @code{vi} mode, you are already placed in +`insertion' mode, as if you had typed an @samp{i}. Pressing @key{ESC} +switches you into `command' mode, where you can edit the text of the +line with the standard @code{vi} movement keys, move to previous +history lines with @samp{k} and subsequent lines with @samp{j}, and +so forth. + +@ifset BashFeatures +@node Programmable Completion +@section Programmable Completion +@cindex programmable completion + +When word completion is attempted for an argument to a command for +which a completion specification (a @var{compspec}) has been defined +using the @code{complete} builtin (@pxref{Programmable Completion Builtins}), +the programmable completion facilities are invoked. + +First, the command name is identified. +If a compspec has been defined for that command, the +compspec is used to generate the list of possible completions for the word. +If the command word is a full pathname, a compspec for the full +pathname is searched for first. +If no compspec is found for the full pathname, an attempt is made to +find a compspec for the portion following the final slash. + +Once a compspec has been found, it is used to generate the list of +matching words. +If a compspec is not found, the default Bash completion +described above (@pxref{Commands For Completion}) is performed. + +First, the actions specified by the compspec are used. +Only matches which are prefixed by the word being completed are +returned. +When the @option{-f} or @option{-d} option is used for filename or +directory name completion, the shell variable @env{FIGNORE} is +used to filter the matches. +@xref{Bash Variables}, for a description of @env{FIGNORE}. + +Any completions specified by a filename expansion pattern to the +@option{-G} option are generated next. +The words generated by the pattern need not match the word being completed. +The @env{GLOBIGNORE} shell variable is not used to filter the matches, +but the @env{FIGNORE} shell variable is used. + +Next, the string specified as the argument to the @option{-W} option +is considered. +The string is first split using the characters in the @env{IFS} +special variable as delimiters. +Shell quoting is honored. +Each word is then expanded using +brace expansion, tilde expansion, parameter and variable expansion, +command substitution, arithmetic expansion, and pathname expansion, +as described above (@pxref{Shell Expansions}). +The results are split using the rules described above +(@pxref{Word Splitting}). +The results of the expansion are prefix-matched against the word being +completed, and the matching words become the possible completions. + +After these matches have been generated, any shell function or command +specified with the @option{-F} and @option{-C} options is invoked. +When the command or function is invoked, the @env{COMP_LINE} and +@env{COMP_POINT} variables are assigned values as described above +(@pxref{Bash Variables}). +If a shell function is being invoked, the @env{COMP_WORDS} and +@env{COMP_CWORD} variables are also set. +When the function or command is invoked, the first argument is the +name of the command whose arguments are being completed, the +second argument is the word being completed, and the third argument +is the word preceding the word being completed on the current command line. +No filtering of the generated completions against the word being completed +is performed; the function or command has complete freedom in generating +the matches. + +Any function specified with @option{-F} is invoked first. +The function may use any of the shell facilities, including the +@code{compgen} builtin described below +(@pxref{Programmable Completion Builtins}), to generate the matches. +It must put the possible completions in the @env{COMPREPLY} array +variable. + +Next, any command specified with the @option{-C} option is invoked +in an environment equivalent to command substitution. +It should print a list of completions, one per line, to +the standard output. +Backslash may be used to escape a newline, if necessary. + +After all of the possible completions are generated, any filter +specified with the @option{-X} option is applied to the list. +The filter is a pattern as used for pathname expansion; a @samp{&} +in the pattern is replaced with the text of the word being completed. +A literal @samp{&} may be escaped with a backslash; the backslash +is removed before attempting a match. +Any completion that matches the pattern will be removed from the list. +A leading @samp{!} negates the pattern; in this case any completion +not matching the pattern will be removed. + +Finally, any prefix and suffix specified with the @option{-P} and @option{-S} +options are added to each member of the completion list, and the result is +returned to the Readline completion code as the list of possible +completions. + +If the previously-applied actions do not generate any matches, and the +@option{-o dirnames} option was supplied to @code{complete} when the +compspec was defined, directory name completion is attempted. + +If the @option{-o plusdirs} option was supplied to @code{complete} when +the compspec was defined, directory name completion is attempted and any +matches are added to the results of the other actions. + +By default, if a compspec is found, whatever it generates is returned to +the completion code as the full set of possible completions. +The default Bash completions are not attempted, and the Readline default +of filename completion is disabled. +If the @option{-o bashdefault} option was supplied to @code{complete} when +the compspec was defined, the default Bash completions are attempted +if the compspec generates no matches. +If the @option{-o default} option was supplied to @code{complete} when the +compspec was defined, Readline's default completion will be performed +if the compspec (and, if attempted, the default Bash completions) +generate no matches. + +When a compspec indicates that directory name completion is desired, +the programmable completion functions force Readline to append a slash +to completed names which are symbolic links to directories, subject to +the value of the @var{mark-directories} Readline variable, regardless +of the setting of the @var{mark-symlinked-directories} Readline variable. + +@node Programmable Completion Builtins +@section Programmable Completion Builtins +@cindex completion builtins + +Two builtin commands are available to manipulate the programmable completion +facilities. + +@table @code +@item compgen +@btindex compgen +@example +@code{compgen [@var{option}] [@var{word}]} +@end example + +Generate possible completion matches for @var{word} according to +the @var{option}s, which may be any option accepted by the +@code{complete} +builtin with the exception of @option{-p} and @option{-r}, and write +the matches to the standard output. +When using the @option{-F} or @option{-C} options, the various shell variables +set by the programmable completion facilities, while available, will not +have useful values. + +The matches will be generated in the same way as if the programmable +completion code had generated them directly from a completion specification +with the same flags. +If @var{word} is specified, only those completions matching @var{word} +will be displayed. + +The return value is true unless an invalid option is supplied, or no +matches were generated. + +@item complete +@btindex complete +@example +@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}] +[-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}] +[-C @var{command}] @var{name} [@var{name} @dots{}]} +@code{complete -pr [@var{name} @dots{}]} +@end example + +Specify how arguments to each @var{name} should be completed. +If the @option{-p} option is supplied, or if no options are supplied, existing +completion specifications are printed in a way that allows them to be +reused as input. +The @option{-r} option removes a completion specification for +each @var{name}, or, if no @var{name}s are supplied, all +completion specifications. + +The process of applying these completion specifications when word completion +is attempted is described above (@pxref{Programmable Completion}). + +Other options, if specified, have the following meanings. +The arguments to the @option{-G}, @option{-W}, and @option{-X} options +(and, if necessary, the @option{-P} and @option{-S} options) +should be quoted to protect them from expansion before the +@code{complete} builtin is invoked. + + +@table @code +@item -o @var{comp-option} +The @var{comp-option} controls several aspects of the compspec's behavior +beyond the simple generation of completions. +@var{comp-option} may be one of: + +@table @code + +@item bashdefault +Perform the rest of the default Bash completions if the compspec +generates no matches. + +@item default +Use Readline's default filename completion if the compspec generates +no matches. + +@item dirnames +Perform directory name completion if the compspec generates no matches. + +@item filenames +Tell Readline that the compspec generates filenames, so it can perform any +filename-specific processing (like adding a slash to directory names or +suppressing trailing spaces). This option is intended to be used with +shell functions specified with @option{-F}. + +@item nospace +Tell Readline not to append a space (the default) to words completed at +the end of the line. +@end table + +@item -A @var{action} +The @var{action} may be one of the following to generate a list of possible +completions: + +@table @code +@item alias +Alias names. May also be specified as @option{-a}. + +@item arrayvar +Array variable names. + +@item binding +Readline key binding names (@pxref{Bindable Readline Commands}). + +@item builtin +Names of shell builtin commands. May also be specified as @option{-b}. + +@item command +Command names. May also be specified as @option{-c}. + +@item directory +Directory names. May also be specified as @option{-d}. + +@item disabled +Names of disabled shell builtins. + +@item enabled +Names of enabled shell builtins. + +@item export +Names of exported shell variables. May also be specified as @option{-e}. + +@item file +File names. May also be specified as @option{-f}. + +@item function +Names of shell functions. + +@item group +Group names. May also be specified as @option{-g}. + +@item helptopic +Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}). + +@item hostname +Hostnames, as taken from the file specified by the +@env{HOSTFILE} shell variable (@pxref{Bash Variables}). + +@item job +Job names, if job control is active. May also be specified as @option{-j}. + +@item keyword +Shell reserved words. May also be specified as @option{-k}. + +@item running +Names of running jobs, if job control is active. + +@item service +Service names. May also be specified as @option{-s}. + +@item setopt +Valid arguments for the @option{-o} option to the @code{set} builtin +(@pxref{The Set Builtin}). + +@item shopt +Shell option names as accepted by the @code{shopt} builtin +(@pxref{Bash Builtins}). + +@item signal +Signal names. + +@item stopped +Names of stopped jobs, if job control is active. + +@item user +User names. May also be specified as @option{-u}. + +@item variable +Names of all shell variables. May also be specified as @option{-v}. +@end table + +@item -G @var{globpat} +The filename expansion pattern @var{globpat} is expanded to generate +the possible completions. + +@item -W @var{wordlist} +The @var{wordlist} is split using the characters in the +@env{IFS} special variable as delimiters, and each resultant word +is expanded. +The possible completions are the members of the resultant list which +match the word being completed. + +@item -C @var{command} +@var{command} is executed in a subshell environment, and its output is +used as the possible completions. + +@item -F @var{function} +The shell function @var{function} is executed in the current shell +environment. +When it finishes, the possible completions are retrieved from the value +of the @env{COMPREPLY} array variable. + +@item -X @var{filterpat} +@var{filterpat} is a pattern as used for filename expansion. +It is applied to the list of possible completions generated by the +preceding options and arguments, and each completion matching +@var{filterpat} is removed from the list. +A leading @samp{!} in @var{filterpat} negates the pattern; in this +case, any completion not matching @var{filterpat} is removed. + +@item -P @var{prefix} +@var{prefix} is added at the beginning of each possible completion +after all other options have been applied. + +@item -S @var{suffix} +@var{suffix} is appended to each possible completion +after all other options have been applied. +@end table + +The return value is true unless an invalid option is supplied, an option +other than @option{-p} or @option{-r} is supplied without a @var{name} +argument, an attempt is made to remove a completion specification for +a @var{name} for which no specification exists, or +an error occurs adding a completion specification. + +@end table +@end ifset diff --git a/lib/sh/Makefile.in b/lib/sh/Makefile.in index c375c1de5..17596b8b8 100644 --- a/lib/sh/Makefile.in +++ b/lib/sh/Makefile.in @@ -86,7 +86,7 @@ CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \ inet_aton.c netconn.c netopen.c strpbrk.c timeval.c makepath.c \ pathcanon.c pathphys.c tmpfile.c stringlist.c stringvec.c spell.c \ shquote.c strtrans.c strindex.c snprintf.c mailstat.c \ - fmtulong.c fmtullong.c fmtumax.c shmatch.c \ + fmtulong.c fmtullong.c fmtumax.c shmatch.c strnlen.c \ strtoll.c strtoull.c strtoimax.c strtoumax.c memset.c strstr.c \ mktime.c strftime.c xstrchr.c zcatfd.c @@ -95,7 +95,7 @@ HSOURCES = # The object files contained in $(LIBRARY_NAME) LIBOBJS = @LIBOBJS@ -OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o \ +OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.o \ itos.o zread.o zwrite.o shtty.o shmatch.o \ netconn.o netopen.o timeval.o makepath.o pathcanon.o \ pathphys.o tmpfile.o stringlist.o stringvec.o spell.o shquote.o \ @@ -162,6 +162,7 @@ strftime.o: strftime.c strindex.o: strindex.c stringlist.o: stringlist.c stringvec.o: stringvec.c +strnlen.o: strnlen.c strpbrk.o: strpbrk.c strtod.o: strtod.c strtoimax.o: strtoimax.c @@ -218,6 +219,7 @@ strftime.o: ${BUILD_DIR}/config.h strindex.o: ${BUILD_DIR}/config.h stringlist.o: ${BUILD_DIR}/config.h stringvec.o: ${BUILD_DIR}/config.h +strnlen.o: ${BUILD_DIR}/config.h strpbrk.o: ${BUILD_DIR}/config.h strtod.o: ${BUILD_DIR}/config.h strtoimax.o: ${BUILD_DIR}/config.h @@ -372,6 +374,8 @@ stringvec.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h stringvec.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h stringvec.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h +strnlen.o: ${BASHINCDIR}/stdc.h + strpbrk.o: ${BASHINCDIR}/stdc.h strtod.o: ${topdir}/bashansi.h diff --git a/lib/sh/Makefile.in~ b/lib/sh/Makefile.in~ new file mode 100644 index 000000000..c375c1de5 --- /dev/null +++ b/lib/sh/Makefile.in~ @@ -0,0 +1,451 @@ +# +# Makefile for the Bash library +# +# +# Copyright (C) 1998-2002 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + +PACKAGE = @PACKAGE_NAME@ +VERSION = @PACKAGE_VERSION@ + +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_VERSION = @PACKAGE_VERSION@ + +srcdir = @srcdir@ +VPATH = .:@srcdir@ +topdir = @top_srcdir@ +BUILD_DIR = @BUILD_DIR@ + +LIBBUILD = ${BUILD_DIR}/lib + +BASHINCDIR = ${topdir}/include + +INTL_LIBSRC = ${topdir}/lib/intl +INTL_BUILDDIR = ${LIBBUILD}/intl +INTL_INC = @INTL_INC@ +LIBINTL_H = @LIBINTL_H@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ + +CC = @CC@ +RANLIB = @RANLIB@ +AR = @AR@ +ARFLAGS = @ARFLAGS@ +RM = rm -f +CP = cp +MV = mv + +SHELL = @MAKE_SHELL@ + +CFLAGS = @CFLAGS@ +LOCAL_CFLAGS = @LOCAL_CFLAGS@ ${DEBUG} +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ @LOCAL_LDFLAGS@ + +PROFILE_FLAGS = @PROFILE_FLAGS@ + +DEFS = @DEFS@ +LOCAL_DEFS = @LOCAL_DEFS@ + +INCLUDES = -I. -I../.. -I$(topdir) -I$(topdir)/lib -I$(BASHINCDIR) -I$(srcdir) $(INTL_INC) + +CCFLAGS = ${PROFILE_FLAGS} ${INCLUDES} $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) \ + $(CFLAGS) $(CPPFLAGS) + +GCC_LINT_FLAGS = -Wall -Wshadow -Wpointer-arith -Wcast-qual \ + -Wcast-align -Wstrict-prototypes -Wconversion \ + -Wmissing-prototypes -Wtraditional -Wredundant-decls -pedantic + +.c.o: + $(CC) -c $(CCFLAGS) $< + +# The name of the library target. +LIBRARY_NAME = libsh.a + +# The C code source files for this library. +CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \ + strcasecmp.c strerror.c strtod.c strtol.c strtoul.c \ + vprint.c itos.c rename.c zread.c zwrite.c shtty.c \ + inet_aton.c netconn.c netopen.c strpbrk.c timeval.c makepath.c \ + pathcanon.c pathphys.c tmpfile.c stringlist.c stringvec.c spell.c \ + shquote.c strtrans.c strindex.c snprintf.c mailstat.c \ + fmtulong.c fmtullong.c fmtumax.c shmatch.c \ + strtoll.c strtoull.c strtoimax.c strtoumax.c memset.c strstr.c \ + mktime.c strftime.c xstrchr.c zcatfd.c + +# The header files for this library. +HSOURCES = + +# The object files contained in $(LIBRARY_NAME) +LIBOBJS = @LIBOBJS@ +OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o \ + itos.o zread.o zwrite.o shtty.o shmatch.o \ + netconn.o netopen.o timeval.o makepath.o pathcanon.o \ + pathphys.o tmpfile.o stringlist.o stringvec.o spell.o shquote.o \ + strtrans.o strindex.o snprintf.o mailstat.o fmtulong.o \ + fmtullong.o fmtumax.o xstrchr.o zcatfd.o ${LIBOBJS} + +SUPPORT = Makefile + +all: $(LIBRARY_NAME) + +$(LIBRARY_NAME): $(OBJECTS) + $(RM) $@ + $(AR) $(ARFLAGS) $@ $(OBJECTS) + -test -n "$(RANLIB)" && $(RANLIB) $@ + +force: + +# The rule for 'includes' is written funny so that the if statement +# always returns TRUE unless there really was an error installing the +# include files. +install: + +clean: + $(RM) $(OBJECTS) $(LIBRARY_NAME) + +realclean distclean maintainer-clean: clean + $(RM) Makefile + +mostlyclean: clean + +# Dependencies + +${BUILD_DIR}/version.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile + -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} version.h ) + +# rules for losing makes, like SunOS +clktck.o: clktck.c +clock.o: clock.c +fmtullong.o: fmtullong.c +fmtulong.o: fmtulong.c +fmtumax.o: fmtumax.c +getcwd.o: getcwd.c +getenv.o: getenv.c +inet_aton.o: inet_aton.c +itos.o: itos.c +mailstat.o: mailstat.c +makepath.o: makepath.c +memset.o: memset.c +mktime.o: mktime.c +netconn.o: netconn.c +netopen.o: netopen.c +oslib.o: oslib.c +pathcanon.o: pathcanon.c +pathphys.o: pathphys.c +rename.o: rename.c +setlinebuf.o: setlinebuf.c +shquote.o: shquote.c +shtty.o: shtty.c +snprintf.o: snprintf.c +spell.o: spell.c +strcasecmp.o: strcasecmp.c +strerror.o: strerror.c +strftime.o: strftime.c +strindex.o: strindex.c +stringlist.o: stringlist.c +stringvec.o: stringvec.c +strpbrk.o: strpbrk.c +strtod.o: strtod.c +strtoimax.o: strtoimax.c +strtol.o: strtol.c +strtoll.o: strtoll.c +strtoul.o: strtoul.c +strtoull.o: strtoull.c +strtoumax.o: strtoumax.c +strtrans.o: strtrans.c +times.o: times.c +timeval.o: timeval.c +tmpfile.o: tmpfile.c +vprint.o: vprint.c +xstrchr.o: xstrchr.c +zcatfd.o: zcatfd.c +zread.o: zread.c +zwrite.o: zwrite.c + +# dependencies for c files that include other c files +fmtullong.o: fmtulong.c +fmtumax.o: fmtulong.c +strtoll.o: strtol.c +strtoul.o: strtol.c +strtoull.o: strtol.c + +# all files in the library depend on config.h +clktck.o: ${BUILD_DIR}/config.h +clock.o: ${BUILD_DIR}/config.h +fmtullong.o: ${BUILD_DIR}/config.h +fmtulong.o: ${BUILD_DIR}/config.h +fmtumax.o: ${BUILD_DIR}/config.h +getcwd.o: ${BUILD_DIR}/config.h +getenv.o: ${BUILD_DIR}/config.h +inet_aton.o: ${BUILD_DIR}/config.h +itos.o: ${BUILD_DIR}/config.h +mailstat.o: ${BUILD_DIR}/config.h +makepath.o: ${BUILD_DIR}/config.h +memset.o: ${BUILD_DIR}/config.h +mktime.o: ${BUILD_DIR}/config.h +netconn.o: ${BUILD_DIR}/config.h +netopen.o: ${BUILD_DIR}/config.h +oslib.o: ${BUILD_DIR}/config.h +pathcanon.o: ${BUILD_DIR}/config.h +pathphys.o: ${BUILD_DIR}/config.h +rename.o: ${BUILD_DIR}/config.h +setlinebuf.o: ${BUILD_DIR}/config.h +shquote.o: ${BUILD_DIR}/config.h +shtty.o: ${BUILD_DIR}/config.h +snprintf.o: ${BUILD_DIR}/config.h +spell.o: ${BUILD_DIR}/config.h +strcasecmp.o: ${BUILD_DIR}/config.h +strerror.o: ${BUILD_DIR}/config.h +strftime.o: ${BUILD_DIR}/config.h +strindex.o: ${BUILD_DIR}/config.h +stringlist.o: ${BUILD_DIR}/config.h +stringvec.o: ${BUILD_DIR}/config.h +strpbrk.o: ${BUILD_DIR}/config.h +strtod.o: ${BUILD_DIR}/config.h +strtoimax.o: ${BUILD_DIR}/config.h +strtol.o: ${BUILD_DIR}/config.h +strtoll.o: ${BUILD_DIR}/config.h +strtoul.o: ${BUILD_DIR}/config.h +strtoull.o: ${BUILD_DIR}/config.h +strtoumax.o: ${BUILD_DIR}/config.h +strtrans.o: ${BUILD_DIR}/config.h +times.o: ${BUILD_DIR}/config.h +timeval.o: ${BUILD_DIR}/config.h +tmpfile.o: ${BUILD_DIR}/config.h +vprint.o: ${BUILD_DIR}/config.h +xstrchr.o: ${BUILD_DIR}/config.h +zcatfd.o: ${BUILD_DIR}/config.h +zread.o: ${BUILD_DIR}/config.h +zwrite.o: ${BUILD_DIR}/config.h + +clktck.o: ${topdir}/bashtypes.h + +getcwd.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h +getcwd.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/posixdir.h +getcwd.o: ${BASHINCDIR}/memalloc.h ${BASHINCDIR}/ansi_stdlib.h + +getenv.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +getenv.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +getenv.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +getenv.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +getenv.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +getenv.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +getenv.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +getenv.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h +getenv.o: ${BUILD_DIR}/version.h + +inet_aton.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +inet_aton.o: ${BASHINCDIR}/stdc.h + +itos.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +itos.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +itos.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +itos.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +itos.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +itos.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +itos.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +itos.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h + +makepath.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +makepath.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +makepath.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +makepath.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +makepath.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +makepath.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +makepath.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +makepath.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h + +netconn.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h +netconn.o: ${topdir}/bashtypes.h + +netopen.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${topdir}/xmalloc.h +netopen.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +netopen.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +netopen.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +netopen.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +netopen.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +netopen.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +netopen.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h +netopen.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + +oslib.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h +oslib.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +oslib.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +oslib.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +oslib.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +oslib.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +oslib.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +oslib.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h +oslib.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h +oslib.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h + +pathcanon.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h +pathcanon.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +pathcanon.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +pathcanon.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +pathcanon.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +pathcanon.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +pathcanon.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +pathcanon.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h +pathcanon.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h +pathcanon.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h + +pathphys.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h +pathphys.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +pathphys.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +pathphys.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +pathphys.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +pathphys.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +pathphys.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +pathphys.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h +pathphys.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h +pathphys.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h + +rename.o: ${topdir}/bashtypes.h ${BASHINCDIR}/stdc.h +rename.o: ${BASHINCDIR}/posixstat.h + +setlinebuf.o: ${topdir}/xmalloc.h ${topdir}/bashansi.h +setlinebuf.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/stdc.h + +shquote.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h +shquote.o: ${BASHINCDIR}/ansi_stdlib.h ${topdir}/xmalloc.h + +shtty.o: ${BASHINCDIR}/shtty.h +shtty.o: ${BASHINCDIR}/stdc.h + +snprintf.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h ${topdir}/xmalloc.h +snprintf.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h +snprintf.o: ${BASHINCDIR}/typemax.h + +spell.o: ${topdir}/bashtypes.h +spell.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/posixdir.h +spell.o: ${BASHINCDIR}/ansi_stdlib.h + +strcasecmp.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h +strcasecmp.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h + +strerror.o: ${topdir}/bashtypes.h +strerror.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +strerror.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +strerror.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +strerror.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +strerror.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +strerror.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +strerror.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h + +strindex.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h +strindex.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h + +stringlist.o: ${topdir}/bashansi.h +stringlist.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +stringlist.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +stringlist.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +stringlist.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +stringlist.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +stringlist.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +stringlist.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h + +stringvec.o: ${topdir}/bashansi.h ${BASHINCDIR}/chartypes.h +stringvec.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +stringvec.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +stringvec.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +stringvec.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +stringvec.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +stringvec.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +stringvec.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h + +strpbrk.o: ${BASHINCDIR}/stdc.h + +strtod.o: ${topdir}/bashansi.h +strtod.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h + +strtoimax.o: ${BASHINCDIR}/stdc.h + +strtol.o: ${topdir}/bashansi.h +strtol.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h +strtol.o: ${BASHINCDIR}/typemax.h + +strtoll.o: ${topdir}/bashansi.h +strtoll.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h +strtoll.o: ${BASHINCDIR}/typemax.h + +strtoul.o: ${topdir}/bashansi.h +strtoul.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h +strtoul.o: ${BASHINCDIR}/typemax.h + +strtoull.o: ${topdir}/bashansi.h +strtoull.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h +strtoull.o: ${BASHINCDIR}/typemax.h + +strtoumax.o: ${BASHINCDIR}/stdc.h + +strtrans.o: ${topdir}/bashansi.h +strtrans.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h +strtrans.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h +strtrans.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h +strtrans.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h +strtrans.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h +strtrans.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h +strtrans.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h +strtrans.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h + +times.o: ${BASHINCDIR}/systimes.h +times.o: ${BASHINCDIR}/posixtime.h + +timeval.o: ${BASHINCDIR}/posixtime.h + +tmpfile.o: ${topdir}/bashtypes.h +tmpfile.o: ${BASHINCDIR}/posixstat.h +tmpfile.o: ${BASHINCDIR}/filecntl.h + +clock.o: ${BASHINCDIR}/posixtime.h + +mailstat.o: ${topdir}/bashansi.h +mailstat.o: ${topdir}/bashtypes.h +mailstat.o: ${BASHINCDIR}/ansi_stdlib.h +mailstat.o: ${BASHINCDIR}/posixstat.h +mailstat.o: ${BASHINCDIR}/posixdir.h +mailstat.o: ${BASHINCDIR}/maxpath.h + +fmtulong.o: ${topdir}/bashansi.h +fmtulong.o: ${BASHINCDIR}/ansi_stdlib.h +fmtulong.o: ${BASHINCDIR}/chartypes.h +fmtulong.o: ${BASHINCDIR}/stdc.h +fmtulong.o: ${BASHINCDIR}/typemax.h +fmtulong.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h + +fmtullong.o: ${topdir}/bashansi.h +fmtullong.o: ${BASHINCDIR}/ansi_stdlib.h +fmtullong.o: ${BASHINCDIR}/chartypes.h +fmtullong.o: ${BASHINCDIR}/stdc.h +fmtullong.o: ${BASHINCDIR}/typemax.h +fmtullong.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h + +fmtumax.o: ${topdir}/bashansi.h +fmtumax.o: ${BASHINCDIR}/ansi_stdlib.h +fmtumax.o: ${BASHINCDIR}/chartypes.h +fmtumax.o: ${BASHINCDIR}/stdc.h +fmtumax.o: ${BASHINCDIR}/typemax.h +fmtumax.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h + +xstrchr.o: ${topdir}/bashansi.h +xstrchr.o: ${BASHINCDIR}/ansi_stdlib.h +xstrchr.o: ${BASHINCDIR}/shmbutil.h diff --git a/lib/sh/strnlen.c b/lib/sh/strnlen.c new file mode 100644 index 000000000..53e2fe2c0 --- /dev/null +++ b/lib/sh/strnlen.c @@ -0,0 +1,39 @@ +/* Copyright (C) 2004 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if !defined (HAVE_STRNLEN) + +#include + +/* Find the length of S, but scan at most MAXLEN characters. If no '\0' + terminator is found within the first MAXLEN characters, return MAXLEN. */ +size_t +strnlen (s, maxlen) + register const char *s; + size_t maxlen; +{ + register const char *e; + size_t n; + + for (e = s,n = 0; *e && n < maxlen; e++, n++) + ; + return n; +} +#endif diff --git a/lib/sh/strnlen.c~ b/lib/sh/strnlen.c~ new file mode 100644 index 000000000..3c493a883 --- /dev/null +++ b/lib/sh/strnlen.c~ @@ -0,0 +1,44 @@ +/* Copyright (C) 1991, 1994 Free Software Foundation, Inc. + NOTE: The canonical source of this file is maintained with the GNU C Library. + Bugs can be reported to bug-glibc@prep.ai.mit.edu. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if !defined (HAVE_STRPBRK) + +#include + +/* Find the first ocurrence in S of any character in ACCEPT. */ +char * +strpbrk (s, accept) + register const char *s; + register const char *accept; +{ + while (*s != '\0') + { + const char *a = accept; + while (*a != '\0') + if (*a++ == *s) + return (char *) s; + ++s; + } + + return 0; +} +#endif diff --git a/parse.y b/parse.y index 363430e5b..68d66dfed 100644 --- a/parse.y +++ b/parse.y @@ -50,6 +50,7 @@ #include "parser.h" #include "mailcheck.h" #include "test.h" +#include "builtins.h" #include "builtins/common.h" #include "builtins/builtext.h" @@ -1028,6 +1029,7 @@ timespec: TIME #define PST_ALEXPAND 0x0800 /* OK to expand aliases - unused */ #define PST_CMDTOKEN 0x1000 /* command token OK - unused */ #define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */ +#define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */ /* Initial size to allocate for tokens, and the amount to grow them by. */ @@ -2567,6 +2569,8 @@ read_token (command) parser_state &= ~PST_ALEXPNEXT; #endif /* ALIAS */ + parser_state &= ~PST_ASSIGNOK; + return (character); } @@ -2580,6 +2584,8 @@ read_token (command) parser_state &= ~PST_ALEXPNEXT; #endif /* ALIAS */ + parser_state &= ~PST_ASSIGNOK; + peek_char = shell_getc (1); if (character == peek_char) { @@ -2607,6 +2613,7 @@ read_token (command) #if defined (ALIAS) parser_state &= ~PST_ALEXPNEXT; #endif /* ALIAS */ + return (SEMI_SEMI); case '&': @@ -3515,7 +3522,7 @@ read_token_word (character) goto next_character; } /* Identify possible compound array variable assignment. */ - else if MBTEST(character == '=' && token_index > 0 && token_is_assignment (token, token_index)) + else if MBTEST(character == '=' && token_index > 0 && (assignment_acceptable (last_read_token) || (parser_state & PST_ASSIGNOK)) && token_is_assignment (token, token_index)) { peek_char = shell_getc (1); if MBTEST(peek_char == '(') /* ) */ @@ -3642,6 +3649,14 @@ got_token: the_word->flags |= W_NOSPLIT; } + if (command_token_position (last_read_token)) + { + struct builtin *b; + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) + parser_state |= PST_ASSIGNOK; + } + yylval.word = the_word; result = ((the_word->flags & (W_ASSIGNMENT|W_NOSPLIT)) == (W_ASSIGNMENT|W_NOSPLIT)) diff --git a/parse.y~ b/parse.y~ new file mode 100644 index 000000000..75163c54e --- /dev/null +++ b/parse.y~ @@ -0,0 +1,4874 @@ +/* Yacc grammar for bash. */ + +/* Copyright (C) 1989-2004 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2, or (at your option) any later + version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License along + with Bash; see the file LICENSE. If not, write to the Free Software + Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + +%{ +#include "config.h" + +#include "bashtypes.h" +#include "bashansi.h" + +#include "filecntl.h" + +#if defined (HAVE_UNISTD_H) +# include +#endif + +#if defined (HAVE_LOCALE_H) +# include +#endif + +#include +#include "chartypes.h" +#include + +#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 +#endif /* READLINE */ + +#if defined (HISTORY) +# include "bashhist.h" +# include +#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 +# endif +# include +# if defined (TM_IN_SYS_TIME) +# include +# include +# 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 ASSIGNMENT_WORD +%token NUMBER +%token ARITH_CMD ARITH_FOR_EXPRS +%token 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 inputunit command pipeline pipeline_command +%type list list0 list1 compound_list simple_list simple_list1 +%type simple_command shell_command +%type for_command select_command case_command group_command +%type arith_command +%type cond_command +%type arith_for_command +%type function_def function_body if_command elif_clause subshell +%type redirection redirection_list +%type simple_command_element +%type word_list pattern +%type pattern_list case_clause_sequence case_clause +%type timespec +%type 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 \ 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 \ 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 \ 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 \ 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 */ diff --git a/patchlevel.h b/patchlevel.h index 5eaed70be..4c2c67a45 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 1 +#define PATCHLEVEL 0 #endif /* _PATCHLEVEL_H_ */ diff --git a/patchlevel.h~ b/patchlevel.h~ new file mode 100644 index 000000000..5eaed70be --- /dev/null +++ b/patchlevel.h~ @@ -0,0 +1,30 @@ +/* patchlevel.h -- current bash patch level */ + +/* Copyright (C) 2001 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with Bash; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + +#if !defined (_PATCHLEVEL_H_) +#define _PATCHLEVEL_H_ + +/* It's important that there be no other strings in this file that match the + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +#define PATCHLEVEL 1 + +#endif /* _PATCHLEVEL_H_ */ diff --git a/po.orig/LINGUAS b/po.orig/LINGUAS new file mode 100644 index 000000000..3595cc0f5 --- /dev/null +++ b/po.orig/LINGUAS @@ -0,0 +1,2 @@ +# Set of available languages. +en@quot en@boldquot diff --git a/po.orig/Makefile.in.in b/po.orig/Makefile.in.in new file mode 100644 index 000000000..c28f1ce4d --- /dev/null +++ b/po.orig/Makefile.in.in @@ -0,0 +1,357 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. + +PACKAGE = @PACKAGE_NAME@ +VERSION = @PACKAGE_VERSION@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +topdir = @top_srcdir@ +BUILD_DIR = @BUILD_DIR@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = @datadir@ +localedir = $(datadir)/locale +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) + +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = @XGETTEXT@ +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS) + @echo "touch stamp-po" + @echo timestamp > stamp-poT + @mv stamp-poT stamp-po + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)' + $(MAKE) $(MFLAGS) builtins.pot-update + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + $(mkinstalldirs) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkinstalldirs) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + $(mkinstalldirs) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkinstalldirs) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir); \ + else \ + cp -p $(srcdir)/$$file $(distdir); \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@ $(srcdir)/Rules-builtins + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ + $(SHELL) ./config.status + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po.orig/Makevars b/po.orig/Makevars new file mode 100644 index 000000000..84b2d9562 --- /dev/null +++ b/po.orig/Makevars @@ -0,0 +1,41 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = $(BUILD_DIR) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ -C + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-bash@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = diff --git a/po.orig/Makevars.template b/po.orig/Makevars.template new file mode 100644 index 000000000..32692ab4b --- /dev/null +++ b/po.orig/Makevars.template @@ -0,0 +1,41 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = diff --git a/po.orig/POTFILES.in b/po.orig/POTFILES.in new file mode 100644 index 000000000..a59a0965b --- /dev/null +++ b/po.orig/POTFILES.in @@ -0,0 +1,76 @@ +# List of source files containing translatable strings. +# Copyright (C) 2004 Free Software Foundation, Inc. + +arrayfunc.c +bashhist.c +bashline.c +braces.c +builtins/bind.def +builtins/break.def +builtins/caller.def +builtins/cd.def +builtins/common.c +builtins/complete.def +builtins/declare.def +builtins/enable.def +builtins/evalfile.c +builtins/exec.def +builtins/exit.def +builtins/fc.def +builtins/fg_bg.def +builtins/getopt.c +builtins/hash.def +builtins/help.def +builtins/history.def +builtins/inlib.def +builtins/jobs.def +builtins/kill.def +builtins/let.def +builtins/mkbuiltins.c +builtins/printf.def +builtins/pushd.def +builtins/read.def +builtins/return.def +builtins/set.def +builtins/setattr.def +builtins/shift.def +builtins/shopt.def +builtins/source.def +builtins/suspend.def +builtins/type.def +builtins/ulimit.def +builtins/umask.def +error.c +eval.c +execute_cmd.c +expr.c +general.c +input.c +jobs.c +lib/malloc/malloc.c +lib/malloc/stats.c +lib/malloc/table.c +lib/malloc/watch.c +lib/sh/fmtulong.c +lib/sh/netopen.c +mailcheck.c +make_cmd.c +nojobs.c +parse.y +pcomplete.c +pcomplib.c +print_cmd.c +redir.c +shell.c +sig.c +siglist.c +subst.c +test.c +trap.c +variables.c +version.c +xmalloc.c + +# Apparently gettext's defaults cannot handle files that exist outside of the +# source directory, like in the build directory +#../builtins/builtins.c diff --git a/po.orig/README b/po.orig/README new file mode 100644 index 000000000..979884c63 --- /dev/null +++ b/po.orig/README @@ -0,0 +1 @@ +This apparently requires GNU sed diff --git a/po.orig/Rules-builtins b/po.orig/Rules-builtins new file mode 100644 index 000000000..57df81c9c --- /dev/null +++ b/po.orig/Rules-builtins @@ -0,0 +1,19 @@ +# +# Update the strings from the builtins' long docs. Must be called when +# bash.pot exists, in the middle of the bash.pot-update recipe +# +builtins.pot-update: $(top_builddir)/builtins/builtins.c + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_builddir)/builtins \ + $(XGETTEXT_OPTIONS) --omit-header \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --join-existing \ + builtins.c + +# This rule has no dependencies: we don't need to update builtins.pot at +# every "make" invocation, only create it when it is missing. +# Only "make builtins.pot-update" or "make dist" will force an update. +$(srcdir)/builtins.pot: + $(MAKE) builtins.pot-update + +xdist: + $(MAKE) update-po diff --git a/po.orig/Rules-quot b/po.orig/Rules-quot new file mode 100644 index 000000000..5f46d237d --- /dev/null +++ b/po.orig/Rules-quot @@ -0,0 +1,42 @@ +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/po.orig/bash.po.orig b/po.orig/bash.po.orig new file mode 100644 index 000000000..023388d96 --- /dev/null +++ b/po.orig/bash.po.orig @@ -0,0 +1,5623 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , 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 \n" +"Language-Team: LANGUAGE \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 "timed 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 "lld" +msgstr "" + +#: builtins/printf.def:68 +msgid "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 "" +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 "" +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 "" +msgstr "" + +#: lib/sh/snprintf.c:892 +msgid "INF" +msgstr "" + +#: lib/sh/snprintf.c:892 +msgid "NAN" +msgstr "" + +#: lib/sh/snprintf.c:893 +msgid "inf" +msgstr "" + +#: lib/sh/snprintf.c:893 +msgid "nan" +msgstr "" + +#: lib/sh/snprintf.c:1646 +msgid "out of virtual memory\n" +msgstr "" + +#: lib/sh/snprintf.c:1695 lib/sh/snprintf.c:1697 lib/sh/snprintf.c:1699 +msgid "abcde\n" +msgstr "" + +#: lib/sh/snprintf.c:1696 +#, c-format +msgid "snprintf returns %d with NULL first argument and size of 0\n" +msgstr "" + +#: lib/sh/snprintf.c:1698 +#, c-format +msgid "snprintf returns %d with non-NULL first argument and size of 0\n" +msgstr "" + +#: lib/sh/snprintf.c:1700 +#, c-format +msgid "snprintf returns %d with NULL first argument and non-zero size\n" +msgstr "" + +#: lib/sh/snprintf.c:1710 +#, c-format +msgid "/%%ld %%ld/, 336, 336\n" +msgstr "" + +#: lib/sh/snprintf.c:1711 lib/sh/snprintf.c:1712 lib/sh/snprintf.c:1713 +#, c-format +msgid "/%ld %ld/\n" +msgstr "" + +#: lib/sh/snprintf.c:1717 +#, c-format +msgid "/%%d/, 336\n" +msgstr "" + +#: lib/sh/snprintf.c:1718 lib/sh/snprintf.c:1719 lib/sh/snprintf.c:1720 +#, c-format +msgid "/%d/\n" +msgstr "" + +#: lib/sh/snprintf.c:1724 +#, c-format +msgid "/%%2d/, 336\n" +msgstr "" + +#: lib/sh/snprintf.c:1725 lib/sh/snprintf.c:1726 lib/sh/snprintf.c:1727 +#, c-format +msgid "/%2d/\n" +msgstr "" + +#: lib/sh/snprintf.c:1731 +#, c-format +msgid "/%%10d/, 336\n" +msgstr "" + +#: lib/sh/snprintf.c:1732 lib/sh/snprintf.c:1733 lib/sh/snprintf.c:1734 +#, c-format +msgid "/%10d/\n" +msgstr "" + +#: lib/sh/snprintf.c:1738 +#, c-format +msgid "/%%-10d/, 336\n" +msgstr "" + +#: lib/sh/snprintf.c:1739 lib/sh/snprintf.c:1740 lib/sh/snprintf.c:1741 +#, c-format +msgid "/%-10d/\n" +msgstr "" + +#: lib/sh/snprintf.c:1748 +#, c-format +msgid "/%%f/, 1234.56\n" +msgstr "" + +#: lib/sh/snprintf.c:1749 lib/sh/snprintf.c:1750 lib/sh/snprintf.c:1751 +#, c-format +msgid "/%f/\n" +msgstr "" + +#: lib/sh/snprintf.c:1755 +#, c-format +msgid "/%%e/, 1234.56\n" +msgstr "" + +#: lib/sh/snprintf.c:1756 lib/sh/snprintf.c:1757 lib/sh/snprintf.c:1758 +#, c-format +msgid "/%e/\n" +msgstr "" + +#: lib/sh/snprintf.c:1762 +#, c-format +msgid "/%%4.2f/, 1234.56\n" +msgstr "" + +#: lib/sh/snprintf.c:1763 lib/sh/snprintf.c:1764 lib/sh/snprintf.c:1765 +#, c-format +msgid "/%4.2f/\n" +msgstr "" + +#: lib/sh/snprintf.c:1769 +#, c-format +msgid "/%%3.1f/, 1234.56\n" +msgstr "" + +#: lib/sh/snprintf.c:1770 lib/sh/snprintf.c:1771 lib/sh/snprintf.c:1772 +#, c-format +msgid "/%3.1f/\n" +msgstr "" + +#: lib/sh/snprintf.c:1776 +#, c-format +msgid "/%%10.3f/, 1234.56\n" +msgstr "" + +#: lib/sh/snprintf.c:1777 lib/sh/snprintf.c:1778 lib/sh/snprintf.c:1779 +#, c-format +msgid "/%10.3f/\n" +msgstr "" + +#: lib/sh/snprintf.c:1783 +#, c-format +msgid "/%%10.3e/, 1234.56\n" +msgstr "" + +#: lib/sh/snprintf.c:1784 lib/sh/snprintf.c:1785 lib/sh/snprintf.c:1786 +#, c-format +msgid "/%10.3e/\n" +msgstr "" + +#: lib/sh/snprintf.c:1790 +#, c-format +msgid "/%%+4.2f/, 1234.56\n" +msgstr "" + +#: lib/sh/snprintf.c:1791 lib/sh/snprintf.c:1792 lib/sh/snprintf.c:1793 +#, c-format +msgid "/%+4.2f/\n" +msgstr "" + +#: lib/sh/snprintf.c:1797 +#, c-format +msgid "/%%010.2f/, 1234.56\n" +msgstr "" + +#: lib/sh/snprintf.c:1798 lib/sh/snprintf.c:1799 lib/sh/snprintf.c:1800 +#, c-format +msgid "/%010.2f/\n" +msgstr "" + +#: lib/sh/snprintf.c:1804 +msgid "Outstanding acting !" +msgstr "" + +#: lib/sh/snprintf.c:1807 +#, c-format +msgid "/%%2s/, \"%s\"\n" +msgstr "" + +#: lib/sh/snprintf.c:1808 lib/sh/snprintf.c:1809 lib/sh/snprintf.c:1810 +#, c-format +msgid "/%2s/\n" +msgstr "" + +#: lib/sh/snprintf.c:1814 +#, c-format +msgid "/%%22s/ %s\n" +msgstr "" + +#: lib/sh/snprintf.c:1815 lib/sh/snprintf.c:1816 lib/sh/snprintf.c:1817 +#, c-format +msgid "/%22s/\n" +msgstr "" + +#: lib/sh/snprintf.c:1821 +#, c-format +msgid "/%%22.5s/ %s\n" +msgstr "" + +#: lib/sh/snprintf.c:1822 lib/sh/snprintf.c:1823 lib/sh/snprintf.c:1824 +#, c-format +msgid "/%22.5s/\n" +msgstr "" + +#: lib/sh/snprintf.c:1828 +#, c-format +msgid "/%%-22.5s/ %s\n" +msgstr "" + +#: lib/sh/snprintf.c:1829 lib/sh/snprintf.c:1830 lib/sh/snprintf.c:1831 +#, c-format +msgid "/%-22.5s/\n" +msgstr "" + +#: lib/sh/snprintf.c:1837 +#, c-format +msgid "%%x %%X %%#x, 31, 31, 31\n" +msgstr "" + +#: lib/sh/snprintf.c:1838 lib/sh/snprintf.c:1839 lib/sh/snprintf.c:1840 +#, c-format +msgid "%x %X %#x\n" +msgstr "" + +#: lib/sh/snprintf.c:1844 +#, c-format +msgid "**%%d**%% d**%% d**, 42, 42, -42\n" +msgstr "" + +#: lib/sh/snprintf.c:1845 lib/sh/snprintf.c:1846 lib/sh/snprintf.c:1847 +#, c-format +msgid "**%d**% d**% d**\n" +msgstr "" + +#: lib/sh/snprintf.c:1853 +#, c-format +msgid "/%%g/, 31.4\n" +msgstr "" + +#: lib/sh/snprintf.c:1854 lib/sh/snprintf.c:1855 lib/sh/snprintf.c:1856 +#: lib/sh/snprintf.c:1975 lib/sh/snprintf.c:1976 lib/sh/snprintf.c:1977 +#: lib/sh/snprintf.c:1982 lib/sh/snprintf.c:1983 lib/sh/snprintf.c:1984 +#, c-format +msgid "/%g/\n" +msgstr "" + +#: lib/sh/snprintf.c:1860 +#, c-format +msgid "/%%.6g/, 31.4\n" +msgstr "" + +#: lib/sh/snprintf.c:1861 lib/sh/snprintf.c:1862 lib/sh/snprintf.c:1863 +#, c-format +msgid "/%.6g/\n" +msgstr "" + +#: lib/sh/snprintf.c:1867 +#, c-format +msgid "/%%.1G/, 31.4\n" +msgstr "" + +#: lib/sh/snprintf.c:1868 lib/sh/snprintf.c:1869 lib/sh/snprintf.c:1870 +#: lib/sh/snprintf.c:1875 lib/sh/snprintf.c:1876 lib/sh/snprintf.c:1877 +#, c-format +msgid "/%.1G/\n" +msgstr "" + +#: lib/sh/snprintf.c:1874 +#, c-format +msgid "/%%.1G/, 3100000000.4\n" +msgstr "" + +#: lib/sh/snprintf.c:1881 +#, c-format +msgid "abc%%n\n" +msgstr "" + +#: lib/sh/snprintf.c:1882 lib/sh/snprintf.c:1883 lib/sh/snprintf.c:1885 +#, c-format +msgid "abc%n" +msgstr "" + +#: lib/sh/snprintf.c:1884 lib/sh/snprintf.c:1886 +#, c-format +msgid "" +"%d\n" +"\n" +msgstr "" + +#: lib/sh/snprintf.c:1888 +#, c-format +msgid "%%*.*s --> 10.10\n" +msgstr "" + +#: lib/sh/snprintf.c:1889 lib/sh/snprintf.c:1890 lib/sh/snprintf.c:1891 +#, c-format +msgid "%*.*s\n" +msgstr "" + +#: lib/sh/snprintf.c:1895 +#, c-format +msgid "%%%%%%%%\n" +msgstr "" + +#: lib/sh/snprintf.c:1896 lib/sh/snprintf.c:1897 lib/sh/snprintf.c:1898 +#, c-format +msgid "%%%%\n" +msgstr "" + +#: lib/sh/snprintf.c:1902 +msgid "Hello this is a too big string for the buffer" +msgstr "" + +#: lib/sh/snprintf.c:1904 +#, c-format +msgid "<%%>, %s\n" +msgstr "" + +#: lib/sh/snprintf.c:1907 lib/sh/snprintf.c:1908 lib/sh/snprintf.c:1915 +#: lib/sh/snprintf.c:1922 lib/sh/snprintf.c:1930 lib/sh/snprintf.c:1939 +#: lib/sh/snprintf.c:1948 lib/sh/snprintf.c:1955 +#, c-format +msgid "<%s>\n" +msgstr "" + +#: lib/sh/snprintf.c:1909 lib/sh/snprintf.c:1916 lib/sh/snprintf.c:1923 +#: lib/sh/snprintf.c:1931 lib/sh/snprintf.c:1940 lib/sh/snprintf.c:1949 +#: lib/sh/snprintf.c:1956 +#, c-format +msgid "" +"<%s>\n" +"\n" +msgstr "" + +#: lib/sh/snprintf.c:1911 +#, c-format +msgid "<%%p> vsnprintf\n" +msgstr "" + +#: lib/sh/snprintf.c:1912 lib/sh/snprintf.c:1913 +#, c-format +msgid "%p" +msgstr "" + +#: lib/sh/snprintf.c:1914 +#, c-format +msgid "<%p>\n" +msgstr "" + +#: lib/sh/snprintf.c:1918 +#, c-format +msgid "<%%lu> LONG_MAX+1\n" +msgstr "" + +#: lib/sh/snprintf.c:1919 lib/sh/snprintf.c:1920 +#, c-format +msgid "%lu" +msgstr "" + +#: lib/sh/snprintf.c:1921 +#, c-format +msgid "<%lu>\n" +msgstr "" + +#: lib/sh/snprintf.c:1926 +#, c-format +msgid "<%%llu> LLONG_MAX+1\n" +msgstr "" + +#: lib/sh/snprintf.c:1927 lib/sh/snprintf.c:1928 +#, c-format +msgid "%llu" +msgstr "" + +#: lib/sh/snprintf.c:1929 +#, c-format +msgid "<%llu>\n" +msgstr "" + +#: lib/sh/snprintf.c:1935 +#, c-format +msgid "<%%6.2LE> 42.42\n" +msgstr "" + +#: lib/sh/snprintf.c:1936 lib/sh/snprintf.c:1937 +#, c-format +msgid "%6.2LE" +msgstr "" + +#: lib/sh/snprintf.c:1938 +#, c-format +msgid "<%6.2LE>\n" +msgstr "" + +#: lib/sh/snprintf.c:1944 +#, c-format +msgid "<%%6.2A> 42.42\n" +msgstr "" + +#: lib/sh/snprintf.c:1945 lib/sh/snprintf.c:1946 +#, c-format +msgid "%6.2A" +msgstr "" + +#: lib/sh/snprintf.c:1947 +#, c-format +msgid "<%6.2A>\n" +msgstr "" + +#: lib/sh/snprintf.c:1951 +#, c-format +msgid "<%%6.2LA> 42.42\n" +msgstr "" + +#: lib/sh/snprintf.c:1952 lib/sh/snprintf.c:1953 +#, c-format +msgid "%6.2LA" +msgstr "" + +#: lib/sh/snprintf.c:1954 +#, c-format +msgid "<%6.2LA>\n" +msgstr "" + +#: lib/sh/snprintf.c:1959 +#, c-format +msgid "<%%.10240f> DBL_MAX\n" +msgstr "" + +#: lib/sh/snprintf.c:1960 lib/sh/snprintf.c:1961 +#, c-format +msgid "%.10240f" +msgstr "" + +#: lib/sh/snprintf.c:1962 +#, c-format +msgid "<%.10240f>\n" +msgstr "" + +#: lib/sh/snprintf.c:1963 lib/sh/snprintf.c:1970 +#, c-format +msgid "<%d> <%s>\n" +msgstr "" + +#: lib/sh/snprintf.c:1964 lib/sh/snprintf.c:1971 +#, c-format +msgid "" +"<%d> <%s>\n" +"\n" +msgstr "" + +#: lib/sh/snprintf.c:1966 +#, c-format +msgid "<%%.10240Lf> LDBL_MAX\n" +msgstr "" + +#: lib/sh/snprintf.c:1967 lib/sh/snprintf.c:1968 +#, c-format +msgid "%.10240Lf" +msgstr "" + +#: lib/sh/snprintf.c:1969 +#, c-format +msgid "<%.10240Lf>\n" +msgstr "" + +#: lib/sh/snprintf.c:1974 +#, c-format +msgid "/%%g/, 421.2345\n" +msgstr "" + +#: lib/sh/snprintf.c:1981 +#, c-format +msgid "/%%g/, 4214.2345\n" +msgstr "" + +#: lib/sh/snprintf.c:1988 +#, c-format +msgid "/%%.5g/, 4214.2345\n" +msgstr "" + +#: lib/sh/snprintf.c:1989 lib/sh/snprintf.c:1990 lib/sh/snprintf.c:1991 +#, c-format +msgid "/%.5g/\n" +msgstr "" + +#: lib/sh/snprintf.c:1995 +#, c-format +msgid "/%%.4g/, 4214.2345\n" +msgstr "" + +#: lib/sh/snprintf.c:1996 lib/sh/snprintf.c:1997 lib/sh/snprintf.c:1998 +#, c-format +msgid "/%.4g/\n" +msgstr "" + +#: lib/sh/snprintf.c:2002 +#, c-format +msgid "/%%'ld %%'ld/, 12345, 1234567\n" +msgstr "" + +#: lib/sh/snprintf.c:2003 lib/sh/snprintf.c:2004 lib/sh/snprintf.c:2005 +#: lib/sh/snprintf.c:2010 lib/sh/snprintf.c:2011 lib/sh/snprintf.c:2012 +#: lib/sh/snprintf.c:2017 lib/sh/snprintf.c:2018 lib/sh/snprintf.c:2019 +#, c-format +msgid "/%'ld %'ld/\n" +msgstr "" + +#: lib/sh/snprintf.c:2009 +#, c-format +msgid "/%%'ld %%'ld/, 336, 3336\n" +msgstr "" + +#: lib/sh/snprintf.c:2016 +#, c-format +msgid "/%%'ld %%'ld/, -42786, -142786\n" +msgstr "" + +#: lib/sh/snprintf.c:2023 +#, c-format +msgid "/%%'f %%'f/, 421.2345, 421234.56789\n" +msgstr "" + +#: lib/sh/snprintf.c:2024 lib/sh/snprintf.c:2025 lib/sh/snprintf.c:2026 +#: lib/sh/snprintf.c:2031 lib/sh/snprintf.c:2032 lib/sh/snprintf.c:2033 +#, c-format +msgid "/%'f %'f/\n" +msgstr "" + +#: lib/sh/snprintf.c:2030 +#, c-format +msgid "/%%'f %%'f/, -421.2345, -421234.56789\n" +msgstr "" + +#: lib/sh/snprintf.c:2037 +#, c-format +msgid "/%%'g %%'g/, 421.2345, 421234.56789\n" +msgstr "" + +#: lib/sh/snprintf.c:2038 lib/sh/snprintf.c:2039 lib/sh/snprintf.c:2040 +#: lib/sh/snprintf.c:2045 lib/sh/snprintf.c:2046 lib/sh/snprintf.c:2047 +#, c-format +msgid "/%'g %'g/\n" +msgstr "" + +#: lib/sh/snprintf.c:2044 +#, c-format +msgid "/%%'g %%'g/, -421.2345, -421234.56789\n" +msgstr "" + +#: lib/sh/snprintf.c:2052 +#, c-format +msgid "/%%'g/, 4213455.8392\n" +msgstr "" + +#: lib/sh/snprintf.c:2053 lib/sh/snprintf.c:2054 lib/sh/snprintf.c:2055 +#, c-format +msgid "/%'g/\n" +msgstr "" + +#: lib/sh/strerror.c:49 +msgid "Unknown system error " +msgstr "" + +#: lib/sh/strftime.c:153 +msgid "Sun" +msgstr "" + +#: lib/sh/strftime.c:153 +msgid "Mon" +msgstr "" + +#: lib/sh/strftime.c:153 +msgid "Tue" +msgstr "" + +#: lib/sh/strftime.c:153 +msgid "Wed" +msgstr "" + +#: lib/sh/strftime.c:154 +msgid "Thu" +msgstr "" + +#: lib/sh/strftime.c:154 +msgid "Fri" +msgstr "" + +#: lib/sh/strftime.c:154 +msgid "Sat" +msgstr "" + +#: lib/sh/strftime.c:157 +msgid "Sunday" +msgstr "" + +#: lib/sh/strftime.c:157 +msgid "Monday" +msgstr "" + +#: lib/sh/strftime.c:157 +msgid "Tuesday" +msgstr "" + +#: lib/sh/strftime.c:157 +msgid "Wednesday" +msgstr "" + +#: lib/sh/strftime.c:158 +msgid "Thursday" +msgstr "" + +#: lib/sh/strftime.c:158 +msgid "Friday" +msgstr "" + +#: lib/sh/strftime.c:158 +msgid "Saturday" +msgstr "" + +#: lib/sh/strftime.c:161 +msgid "Jan" +msgstr "" + +#: lib/sh/strftime.c:161 +msgid "Feb" +msgstr "" + +#: lib/sh/strftime.c:161 +msgid "Mar" +msgstr "" + +#: lib/sh/strftime.c:161 +msgid "Apr" +msgstr "" + +#: lib/sh/strftime.c:161 lib/sh/strftime.c:166 +msgid "May" +msgstr "" + +#: lib/sh/strftime.c:161 +msgid "Jun" +msgstr "" + +#: lib/sh/strftime.c:162 +msgid "Jul" +msgstr "" + +#: lib/sh/strftime.c:162 +msgid "Aug" +msgstr "" + +#: lib/sh/strftime.c:162 +msgid "Sep" +msgstr "" + +#: lib/sh/strftime.c:162 +msgid "Oct" +msgstr "" + +#: lib/sh/strftime.c:162 +msgid "Nov" +msgstr "" + +#: lib/sh/strftime.c:162 +msgid "Dec" +msgstr "" + +#: lib/sh/strftime.c:165 +msgid "January" +msgstr "" + +#: lib/sh/strftime.c:165 +msgid "February" +msgstr "" + +#: lib/sh/strftime.c:165 +msgid "March" +msgstr "" + +#: lib/sh/strftime.c:165 +msgid "April" +msgstr "" + +#: lib/sh/strftime.c:166 +msgid "June" +msgstr "" + +#: lib/sh/strftime.c:166 +msgid "July" +msgstr "" + +#: lib/sh/strftime.c:166 +msgid "August" +msgstr "" + +#: lib/sh/strftime.c:166 +msgid "September" +msgstr "" + +#: lib/sh/strftime.c:167 +msgid "October" +msgstr "" + +#: lib/sh/strftime.c:167 +msgid "November" +msgstr "" + +#: lib/sh/strftime.c:167 +msgid "December" +msgstr "" + +#: lib/sh/strftime.c:169 +msgid "AM" +msgstr "" + +#: lib/sh/strftime.c:169 +msgid "PM" +msgstr "" + +#: lib/sh/strftime.c:270 +msgid "%A %B %d %T %Y" +msgstr "" + +#: lib/sh/strftime.c:275 lib/sh/strftime.c:280 lib/sh/strftime.c:321 +#: lib/sh/strftime.c:329 lib/sh/strftime.c:338 lib/sh/strftime.c:347 +#: lib/sh/strftime.c:352 lib/sh/strftime.c:393 lib/sh/strftime.c:413 +#: lib/sh/strftime.c:417 lib/sh/strftime.c:426 lib/sh/strftime.c:440 +#, c-format +msgid "%02d" +msgstr "" + +#: lib/sh/strftime.c:284 +msgid "%m/%d/%y" +msgstr "" + +#: lib/sh/strftime.c:288 lib/sh/strftime.c:519 lib/sh/strftime.c:528 +#, c-format +msgid "%2d" +msgstr "" + +#: lib/sh/strftime.c:296 +msgid "%Y-%m-%d" +msgstr "" + +#: lib/sh/strftime.c:342 +#, c-format +msgid "%03d" +msgstr "" + +#: lib/sh/strftime.c:373 +msgid "%I:%M:%S %p" +msgstr "" + +#: lib/sh/strftime.c:386 lib/malloc/stats.c:181 +#, c-format +msgid "%ld" +msgstr "" + +#: lib/sh/strftime.c:430 +msgid "%A %B %d %Y" +msgstr "" + +#: lib/sh/strftime.c:495 +#, c-format +msgid "%02d%02d" +msgstr "" + +#: lib/sh/strftime.c:544 +#, c-format +msgid "%2d-%3.3s-%4d" +msgstr "" + +#: lib/sh/strftime.c:786 +#, c-format +msgid "(%%A) full weekday name, var length (Sunday..Saturday) %A" +msgstr "" + +#: lib/sh/strftime.c:787 +msgid "(%%B) full month name, var length (January..December) %B" +msgstr "" + +#: lib/sh/strftime.c:788 +#, c-format +msgid "(%%C) Century %C" +msgstr "" + +#: lib/sh/strftime.c:789 +msgid "(%%D) date (%%m/%%d/%%y) %D" +msgstr "" + +#: lib/sh/strftime.c:790 +#, c-format +msgid "(%%E) Locale extensions (ignored) %E" +msgstr "" + +#: lib/sh/strftime.c:791 +#, c-format +msgid "(%%F) full month name, var length (January..December) %F" +msgstr "" + +#: lib/sh/strftime.c:792 +msgid "(%%H) hour (24-hour clock, 00..23) %H" +msgstr "" + +#: lib/sh/strftime.c:793 +msgid "(%%I) hour (12-hour clock, 01..12) %I" +msgstr "" + +#: lib/sh/strftime.c:794 +msgid "(%%M) minute (00..59) %M" +msgstr "" + +#: lib/sh/strftime.c:795 +msgid "(%%N) Emporer/Era Name %N" +msgstr "" + +#: lib/sh/strftime.c:796 +msgid "(%%O) Locale extensions (ignored) %O" +msgstr "" + +#: lib/sh/strftime.c:797 +msgid "(%%R) time, 24-hour (%%H:%%M) %R" +msgstr "" + +#: lib/sh/strftime.c:798 +#, c-format +msgid "(%%S) second (00..60) %S" +msgstr "" + +#: lib/sh/strftime.c:799 +msgid "(%%T) time, 24-hour (%%H:%%M:%%S) %T" +msgstr "" + +#: lib/sh/strftime.c:800 +msgid "(%%U) week of year, Sunday as first day of week (00..53) %U" +msgstr "" + +#: lib/sh/strftime.c:801 +msgid "(%%V) week of year according to ISO 8601 %V" +msgstr "" + +#: lib/sh/strftime.c:802 +msgid "(%%W) week of year, Monday as first day of week (00..53) %W" +msgstr "" + +#: lib/sh/strftime.c:803 +msgid "(%%X) appropriate locale time representation (%H:%M:%S) %X" +msgstr "" + +#: lib/sh/strftime.c:804 +msgid "(%%Y) year with century (1970...) %Y" +msgstr "" + +#: lib/sh/strftime.c:805 +msgid "(%%Z) timezone (EDT), or blank if timezone not determinable %Z" +msgstr "" + +#: lib/sh/strftime.c:806 +#, c-format +msgid "(%%a) locale's abbreviated weekday name (Sun..Sat) %a" +msgstr "" + +#: lib/sh/strftime.c:807 +msgid "(%%b) locale's abbreviated month name (Jan..Dec) %b" +msgstr "" + +#: lib/sh/strftime.c:808 +msgid "(%%c) full date (Sat Nov 4 12:02:33 1989)%n%t%t%t %c" +msgstr "" + +#: lib/sh/strftime.c:809 +#, c-format +msgid "(%%d) day of the month (01..31) %d" +msgstr "" + +#: lib/sh/strftime.c:810 +#, c-format +msgid "(%%e) day of the month, blank-padded ( 1..31) %e" +msgstr "" + +#: lib/sh/strftime.c:811 +msgid "(%%h) should be same as (%%b) %h" +msgstr "" + +#: lib/sh/strftime.c:812 +msgid "(%%j) day of the year (001..366) %j" +msgstr "" + +#: lib/sh/strftime.c:813 +msgid "(%%k) hour, 24-hour clock, blank pad ( 0..23) %k" +msgstr "" + +#: lib/sh/strftime.c:814 +msgid "(%%l) hour, 12-hour clock, blank pad ( 0..12) %l" +msgstr "" + +#: lib/sh/strftime.c:815 +#, c-format +msgid "(%%m) month (01..12) %m" +msgstr "" + +#: lib/sh/strftime.c:816 +#, c-format +msgid "(%%o) Emporer/Era Year %o" +msgstr "" + +#: lib/sh/strftime.c:817 +#, c-format +msgid "(%%p) locale's AM or PM based on 12-hour clock %p" +msgstr "" + +#: lib/sh/strftime.c:818 +msgid "(%%r) time, 12-hour (same as %%I:%%M:%%S %%p) %r" +msgstr "" + +#: lib/sh/strftime.c:819 +#, c-format +msgid "(%%u) ISO 8601: Weekday as decimal number [1 (Monday) - 7] %u" +msgstr "" + +#: lib/sh/strftime.c:820 +msgid "(%%v) VMS date (dd-bbb-YYYY) %v" +msgstr "" + +#: lib/sh/strftime.c:821 +msgid "(%%w) day of week (0..6, Sunday == 0) %w" +msgstr "" + +#: lib/sh/strftime.c:822 +#, c-format +msgid "(%%x) appropriate locale date representation %x" +msgstr "" + +#: lib/sh/strftime.c:823 +msgid "(%%y) last two digits of year (00..99) %y" +msgstr "" + +#: lib/sh/strftime.c:824 +msgid "(%%z) timezone offset east of GMT as HHMM (e.g. -0500) %z" +msgstr "" + +#: lib/sh/stringlist.c:235 +#, c-format +msgid "%s%s\n" +msgstr "" + +#: lib/sh/strtoimax.c:38 lib/sh/strtoimax.c:45 lib/sh/strtoumax.c:38 +#: lib/sh/strtoumax.c:45 +msgid "this configure-time declaration test was not run" +msgstr "" + +#: lib/sh/strtoimax.c:83 +#, c-format +msgid "sizeof intmax_t: %d\n" +msgstr "" + +#: lib/sh/strtoimax.c:86 +#, c-format +msgid "sizeof long long: %d\n" +msgstr "" + +#: lib/sh/strtoimax.c:88 +#, c-format +msgid "sizeof long: %d\n" +msgstr "" + +#: lib/sh/strtoimax.c:98 +#, c-format +msgid "%lld %lld %ld\n" +msgstr "" + +#: lib/sh/strtoumax.c:83 +#, c-format +msgid "sizeof uintmax_t: %d\n" +msgstr "" + +#: lib/sh/strtoumax.c:86 +#, c-format +msgid "sizeof unsigned long long: %d\n" +msgstr "" + +#: lib/sh/strtoumax.c:88 +#, c-format +msgid "sizeof unsigned long: %d\n" +msgstr "" + +#: lib/sh/strtoumax.c:98 +#, c-format +msgid "%llu %llu %lu\n" +msgstr "" + +#: lib/sh/tmpfile.c:46 +msgid "shtmp" +msgstr "" + +#: lib/sh/tmpfile.c:73 +msgid "/var/tmp" +msgstr "" + +#: lib/sh/tmpfile.c:77 +msgid "/usr/tmp" +msgstr "" + +#: lib/sh/tmpfile.c:92 +msgid "TMPDIR" +msgstr "" + +#: lib/sh/tmpfile.c:122 lib/sh/tmpfile.c:167 +#, c-format +msgid "%s/%s.XXXXXX" +msgstr "" + +#: lib/sh/tmpfile.c:135 lib/sh/tmpfile.c:184 +#, c-format +msgid "%s/%s-%lu" +msgstr "" + +#: lib/sh/tmpfile.c:212 +msgid "w+" +msgstr "" + +#: lib/malloc/alloca.c:446 +#, c-format +msgid "%011o %011o %011o\n" +msgstr "" + +#: lib/malloc/alloca.c:467 +#, c-format +msgid "%011o %011o\n" +msgstr "" + +#: lib/malloc/i386-alloca.s:1 +msgid "alloca.s" +msgstr "" + +#: lib/malloc/imalloc.h:52 +msgid "x" +msgstr "" + +#: lib/malloc/malloc.c:298 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:314 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:355 +msgid "bcoalesce: CHAIN(mp2) != mp1" +msgstr "" + +#: lib/malloc/malloc.c:604 +msgid "malloc_debug_dummy\n" +msgstr "" + +#: lib/malloc/malloc.c:740 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:766 lib/malloc/malloc.c:768 lib/malloc/malloc.c:773 +msgid "malloc" +msgstr "" + +#: lib/malloc/malloc.c:817 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:820 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:839 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:845 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:942 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:957 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:963 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1009 lib/malloc/malloc.c:1011 lib/malloc/malloc.c:1016 +msgid "realloc" +msgstr "" + +#: lib/malloc/memtest.c:125 lib/malloc/memtest.c:138 +msgid "malloc-test: " +msgstr "" + +#: lib/malloc/stats.c:99 +#, c-format +msgid "" +"Memory allocation statistics: %s\n" +" size\tfree\tin use\ttotal\tmorecore lesscore split\tcoalesce\n" +msgstr "" + +#: lib/malloc/stats.c:104 +#, c-format +msgid "%8lu\t%4d\t%6d\t%5d\t%8d\t%d %5d %8d\n" +msgstr "" + +#: lib/malloc/stats.c:108 +#, c-format +msgid "" +"\n" +"Total bytes in use: %lu, total bytes free: %lu\n" +msgstr "" + +#: lib/malloc/stats.c:110 +#, c-format +msgid "" +"\n" +"Total bytes requested by application: %lu\n" +msgstr "" + +#: lib/malloc/stats.c:111 +#, c-format +msgid "Total mallocs: %d, total frees: %d, total reallocs: %d (%d copies)\n" +msgstr "" + +#: lib/malloc/stats.c:113 +#, c-format +msgid "Total sbrks: %d, total bytes via sbrk: %d\n" +msgstr "" + +#: lib/malloc/stats.c:115 +#, c-format +msgid "Total blocks split: %d, total block coalesces: %d\n" +msgstr "" + +#: lib/malloc/stats.c:134 +msgid "/var/tmp/maltrace/stats." +msgstr "" + +#: lib/malloc/stats.c:172 +#, c-format +msgid "%s%ld" +msgstr "" + +#: lib/malloc/table.c:152 +#, c-format +msgid "malloc: %p: %s: last %s from %s:%d\n" +msgstr "" + +#: lib/malloc/table.c:154 lib/malloc/table.c:155 lib/malloc/table.c:239 +#: lib/malloc/watch.c:46 +msgid "allocated" +msgstr "" + +#: lib/malloc/table.c:154 lib/malloc/table.c:222 lib/malloc/table.c:237 +msgid "free" +msgstr "" + +#: lib/malloc/table.c:155 lib/malloc/watch.c:48 +msgid "freed" +msgstr "" + +#: lib/malloc/table.c:175 +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:182 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:211 +#, c-format +msgid "register_free: %p not in allocation table?\n" +msgstr "" + +#: lib/malloc/table.c:218 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/malloc/table.c:241 +msgid "undetermined?" +msgstr "" + +#: lib/malloc/table.c:255 +#, c-format +msgid "[%d] %p:%d:%s:%s:%s:%d:%d:%d\n" +msgstr "" + +#: lib/malloc/trace.c:51 +#, c-format +msgid "alloc: %s: %p (%d bytes) from '%s:%d'\n" +msgstr "" + +#: lib/malloc/trace.c:54 +#, c-format +msgid "alloc:%p:%d:%s:%d\n" +msgstr "" + +#: lib/malloc/trace.c:69 +#, c-format +msgid "free: %p (%d bytes) from '%s:%d'\n" +msgstr "" + +#: lib/malloc/trace.c:72 +#, c-format +msgid "free:%p:%d:%s:%d\n" +msgstr "" + +#: lib/malloc/trace.c:107 +msgid "/var/tmp/maltrace/trace." +msgstr "" + +#: lib/malloc/watch.c:50 +msgid "requesting resize" +msgstr "" + +#: lib/malloc/watch.c:52 +msgid "just resized" +msgstr "" + +#: lib/malloc/watch.c:54 +msgid "bug: unknown operation" +msgstr "" + +#: lib/malloc/watch.c:56 +#, c-format +msgid "malloc: watch alert: %p %s " +msgstr "" + +#: lib/malloc/watch.c:58 +#, c-format +msgid "(size %lu) " +msgstr "" + +#: lib/malloc/watch.c:59 +#, c-format +msgid "from '%s:%d'\n" +msgstr "" + +#: lib/malloc/x386-alloca.s:10 +msgid "masm" +msgstr "" + +#: lib/malloc/xmalloc.c:55 +#, c-format +msgid "%s: out of virtual memory\n" +msgstr "" + +#: lib/malloc/xmalloc.c:70 +msgid "xmalloc" +msgstr "" + +#: lib/malloc/xmalloc.c:84 +msgid "xrealloc" +msgstr "" diff --git a/po.orig/bash.pot b/po.orig/bash.pot new file mode 100644 index 000000000..3340d22cc --- /dev/null +++ b/po.orig/bash.pot @@ -0,0 +1,4174 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , 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 \n" +"Language-Team: LANGUAGE \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 "" +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 "timed 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 " +msgstr "" + +#: builtins.c:1009 +msgid "or a signal number. `trap -l' prints a list of signal names and their" +msgstr "" + +#: builtins.c:1010 +msgid "corresponding numbers. Note that a signal can be sent to the shell" +msgstr "" + +#: builtins.c:1011 +msgid "with \"kill -signal $$\"." +msgstr "" + +#: builtins.c:1017 +msgid "For each NAME, indicate how it would be interpreted if used as a" +msgstr "" + +#: builtins.c:1018 +msgid "command name." +msgstr "" + +#: builtins.c:1020 +msgid "If the -t option is used, `type' outputs a single word which is one of" +msgstr "" + +#: builtins.c:1021 +msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +msgstr "" + +#: builtins.c:1022 +msgid "alias, shell reserved word, shell function, shell builtin, disk file," +msgstr "" + +#: builtins.c:1023 +msgid "or unfound, respectively." +msgstr "" + +#: builtins.c:1025 +msgid "If the -p flag is used, `type' either returns the name of the disk" +msgstr "" + +#: builtins.c:1026 +msgid "file that would be executed, or nothing if `type -t NAME' would not" +msgstr "" + +#: builtins.c:1027 +msgid "return `file'." +msgstr "" + +#: builtins.c:1029 +msgid "If the -a flag is used, `type' displays all of the places that contain" +msgstr "" + +#: builtins.c:1030 +msgid "an executable named `file'. This includes aliases, builtins, and" +msgstr "" + +#: builtins.c:1031 +msgid "functions, if and only if the -p flag is not also used." +msgstr "" + +#: builtins.c:1033 +msgid "The -f flag suppresses shell function lookup." +msgstr "" + +#: builtins.c:1035 +msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," +msgstr "" + +#: builtins.c:1036 +msgid "builtin, or function, and returns the name of the disk file that would" +msgstr "" + +#: builtins.c:1037 +msgid "be executed." +msgstr "" + +#: builtins.c:1044 +msgid "Ulimit provides control over the resources available to processes" +msgstr "" + +#: builtins.c:1045 +msgid "started by the shell, on systems that allow such control. If an" +msgstr "" + +#: builtins.c:1046 +msgid "option is given, it is interpreted as follows:" +msgstr "" + +#: builtins.c:1048 +msgid " -S\tuse the `soft' resource limit" +msgstr "" + +#: builtins.c:1049 +msgid " -H\tuse the `hard' resource limit" +msgstr "" + +#: builtins.c:1050 +msgid " -a\tall current limits are reported" +msgstr "" + +#: builtins.c:1051 +msgid " -c\tthe maximum size of core files created" +msgstr "" + +#: builtins.c:1052 +msgid " -d\tthe maximum size of a process's data segment" +msgstr "" + +#: builtins.c:1053 +msgid " -f\tthe maximum size of files created by the shell" +msgstr "" + +#: builtins.c:1054 +msgid " -l\tthe maximum size a process may lock into memory" +msgstr "" + +#: builtins.c:1055 +msgid " -m\tthe maximum resident set size" +msgstr "" + +#: builtins.c:1056 +msgid " -n\tthe maximum number of open file descriptors" +msgstr "" + +#: builtins.c:1057 +msgid " -p\tthe pipe buffer size" +msgstr "" + +#: builtins.c:1058 +msgid " -s\tthe maximum stack size" +msgstr "" + +#: builtins.c:1059 +msgid " -t\tthe maximum amount of cpu time in seconds" +msgstr "" + +#: builtins.c:1060 +msgid " -u\tthe maximum number of user processes" +msgstr "" + +#: builtins.c:1061 +msgid " -v\tthe size of virtual memory" +msgstr "" + +#: builtins.c:1063 +msgid "If LIMIT is given, it is the new value of the specified resource;" +msgstr "" + +#: builtins.c:1064 +msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" +msgstr "" + +#: builtins.c:1065 +msgid "" +"the current soft limit, the current hard limit, and no limit, respectively." +msgstr "" + +#: builtins.c:1066 +msgid "Otherwise, the current value of the specified resource is printed." +msgstr "" + +#: builtins.c:1067 +msgid "If no option is given, then -f is assumed. Values are in 1024-byte" +msgstr "" + +#: builtins.c:1068 +msgid "increments, except for -t, which is in seconds, -p, which is in" +msgstr "" + +#: builtins.c:1069 +msgid "increments of 512 bytes, and -u, which is an unscaled number of" +msgstr "" + +#: builtins.c:1070 +msgid "processes." +msgstr "" + +#: builtins.c:1077 +msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" +msgstr "" + +#: builtins.c:1078 +msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" +msgstr "" + +#: builtins.c:1079 +msgid "option makes the output symbolic; otherwise an octal number is output." +msgstr "" + +#: builtins.c:1080 +msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" +msgstr "" + +#: builtins.c:1081 +msgid "that may be used as input. If MODE begins with a digit, it is" +msgstr "" + +#: builtins.c:1082 +msgid "interpreted as an octal number, otherwise it is a symbolic mode string" +msgstr "" + +#: builtins.c:1083 +msgid "like that accepted by chmod(1)." +msgstr "" + +#: builtins.c:1090 builtins.c:1102 +msgid "Wait for the specified process and report its termination status. If" +msgstr "" + +#: builtins.c:1091 builtins.c:1103 +msgid "N is not given, all currently active child processes are waited for," +msgstr "" + +#: builtins.c:1092 +msgid "and the return code is zero. N may be a process ID or a job" +msgstr "" + +#: builtins.c:1093 +msgid "specification; if a job spec is given, all processes in the job's" +msgstr "" + +#: builtins.c:1094 +msgid "pipeline are waited for." +msgstr "" + +#: builtins.c:1104 +msgid "and the return code is zero. N is a process ID; if it is not given," +msgstr "" + +#: builtins.c:1105 +msgid "all child processes of the shell are waited for." +msgstr "" + +#: builtins.c:1112 +msgid "The `for' loop executes a sequence of commands for each member in a" +msgstr "" + +#: builtins.c:1113 +msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +msgstr "" + +#: builtins.c:1114 +msgid "assumed. For each element in WORDS, NAME is set to that element, and" +msgstr "" + +#: builtins.c:1115 +msgid "the COMMANDS are executed." +msgstr "" + +#: builtins.c:1121 +msgid "Equivalent to" +msgstr "" + +#: builtins.c:1122 +msgid "\t(( EXP1 ))" +msgstr "" + +#: builtins.c:1123 +msgid "\twhile (( EXP2 )); do" +msgstr "" + +#: builtins.c:1124 +msgid "\t\tCOMMANDS" +msgstr "" + +#: builtins.c:1125 +msgid "\t\t(( EXP3 ))" +msgstr "" + +#: builtins.c:1126 +msgid "\tdone" +msgstr "" + +#: builtins.c:1127 +msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" +msgstr "" + +#: builtins.c:1128 +msgid "omitted, it behaves as if it evaluates to 1." +msgstr "" + +#: builtins.c:1134 +msgid "The WORDS are expanded, generating a list of words. The" +msgstr "" + +#: builtins.c:1135 +msgid "set of expanded words is printed on the standard error, each" +msgstr "" + +#: builtins.c:1136 +msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +msgstr "" + +#: builtins.c:1137 +msgid "is assumed. The PS3 prompt is then displayed and a line read" +msgstr "" + +#: builtins.c:1138 +msgid "from the standard input. If the line consists of the number" +msgstr "" + +#: builtins.c:1139 +msgid "corresponding to one of the displayed words, then NAME is set" +msgstr "" + +#: builtins.c:1140 +msgid "to that word. If the line is empty, WORDS and the prompt are" +msgstr "" + +#: builtins.c:1141 +msgid "redisplayed. If EOF is read, the command completes. Any other" +msgstr "" + +#: builtins.c:1142 +msgid "value read causes NAME to be set to null. The line read is saved" +msgstr "" + +#: builtins.c:1143 +msgid "in the variable REPLY. COMMANDS are executed after each selection" +msgstr "" + +#: builtins.c:1144 +msgid "until a break command is executed." +msgstr "" + +#: builtins.c:1150 +msgid "Execute PIPELINE and print a summary of the real time, user CPU time," +msgstr "" + +#: builtins.c:1151 +msgid "and system CPU time spent executing PIPELINE when it terminates." +msgstr "" + +#: builtins.c:1152 +msgid "The return status is the return status of PIPELINE. The `-p' option" +msgstr "" + +#: builtins.c:1153 +msgid "prints the timing summary in a slightly different format. This uses" +msgstr "" + +#: builtins.c:1154 +msgid "the value of the TIMEFORMAT variable as the output format." +msgstr "" + +#: builtins.c:1160 +msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" +msgstr "" + +#: builtins.c:1161 +msgid "`|' is used to separate multiple patterns." +msgstr "" + +#: builtins.c:1167 +msgid "" +"The if COMMANDS are executed. If the exit status is zero, then the then" +msgstr "" + +#: builtins.c:1168 +msgid "" +"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +msgstr "" + +#: builtins.c:1169 +msgid "" +"in turn, and if the exit status is zero, the corresponding then COMMANDS" +msgstr "" + +#: builtins.c:1170 +msgid "" +"are executed and the if command completes. Otherwise, the else COMMANDS" +msgstr "" + +#: builtins.c:1171 +msgid "" +"are executed, if present. The exit status is the exit status of the last" +msgstr "" + +#: builtins.c:1172 +msgid "command executed, or zero if no condition tested true." +msgstr "" + +#: builtins.c:1178 builtins.c:1185 +msgid "Expand and execute COMMANDS as long as the final command in the" +msgstr "" + +#: builtins.c:1179 +msgid "`while' COMMANDS has an exit status of zero." +msgstr "" + +#: builtins.c:1186 +msgid "`until' COMMANDS has an exit status which is not zero." +msgstr "" + +#: builtins.c:1192 +msgid "Create a simple command invoked by NAME which runs COMMANDS." +msgstr "" + +#: builtins.c:1193 +msgid "Arguments on the command line along with NAME are passed to the" +msgstr "" + +#: builtins.c:1194 +msgid "function as $0 .. $n." +msgstr "" + +#: builtins.c:1200 +msgid "Run a set of commands in a group. This is one way to redirect an" +msgstr "" + +#: builtins.c:1201 +msgid "entire set of commands." +msgstr "" + +#: builtins.c:1207 +msgid "This is similar to the `fg' command. Resume a stopped or background" +msgstr "" + +#: builtins.c:1208 +msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +msgstr "" + +#: builtins.c:1209 +msgid "WORD, then the job whose name begins with WORD is used. Following the" +msgstr "" + +#: builtins.c:1210 +msgid "job specification with a `&' places the job in the background." +msgstr "" + +#: builtins.c:1216 +msgid "The EXPRESSION is evaluated according to the rules for arithmetic" +msgstr "" + +#: builtins.c:1217 +msgid "evaluation. Equivalent to \"let EXPRESSION\"." +msgstr "" + +#: builtins.c:1223 +msgid "" +"Returns a status of 0 or 1 depending on the evaluation of the conditional" +msgstr "" + +#: builtins.c:1224 +msgid "" +"expression EXPRESSION. Expressions are composed of the same primaries used" +msgstr "" + +#: builtins.c:1225 +msgid "" +"by the `test' builtin, and may be combined using the following operators" +msgstr "" + +#: builtins.c:1227 +msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" +msgstr "" + +#: builtins.c:1228 +msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" +msgstr "" + +#: builtins.c:1229 +msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" +msgstr "" + +#: builtins.c:1230 +msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" +msgstr "" + +#: builtins.c:1232 +msgid "" +"When the `==' and `!=' operators are used, the string to the right of the" +msgstr "" + +#: builtins.c:1233 +msgid "operator is used as a pattern and pattern matching is performed. The" +msgstr "" + +#: builtins.c:1234 +msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" +msgstr "" + +#: builtins.c:1235 +msgid "determine the expression's value." +msgstr "" + +#: builtins.c:1241 +msgid "BASH_VERSION Version information for this Bash." +msgstr "" + +#: builtins.c:1242 +msgid "CDPATH A colon separated list of directories to search" +msgstr "" + +#: builtins.c:1243 +msgid "\t\twhen the argument to `cd' is not found in the current" +msgstr "" + +#: builtins.c:1244 +msgid "\t\tdirectory." +msgstr "" + +#: builtins.c:1245 +msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" +msgstr "" + +#: builtins.c:1246 +msgid "\t\tbe ignored by pathname expansion." +msgstr "" + +#: builtins.c:1248 +msgid "" +"HISTFILE The name of the file where your command history is stored." +msgstr "" + +#: builtins.c:1249 +msgid "HISTFILESIZE The maximum number of lines this file can contain." +msgstr "" + +#: builtins.c:1250 +msgid "HISTSIZE The maximum number of history lines that a running" +msgstr "" + +#: builtins.c:1251 +msgid "\t\tshell can access." +msgstr "" + +#: builtins.c:1253 +msgid "HOME The complete pathname to your login directory." +msgstr "" + +#: builtins.c:1254 +msgid "HOSTNAME\tThe name of the current host." +msgstr "" + +#: builtins.c:1255 +msgid "HOSTTYPE The type of CPU this version of Bash is running under." +msgstr "" + +#: builtins.c:1256 +msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" +msgstr "" + +#: builtins.c:1257 +msgid "\t\tcharacter as the sole input. If set, then the value" +msgstr "" + +#: builtins.c:1258 +msgid "\t\tof it is the number of EOF characters that can be seen" +msgstr "" + +#: builtins.c:1259 +msgid "\t\tin a row on an empty line before the shell will exit" +msgstr "" + +#: builtins.c:1260 +msgid "\t\t(default 10). When unset, EOF signifies the end of input." +msgstr "" + +#: builtins.c:1261 +msgid "MACHTYPE\tA string describing the current system Bash is running on." +msgstr "" + +#: builtins.c:1262 +msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +msgstr "" + +#: builtins.c:1263 +msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +msgstr "" + +#: builtins.c:1264 +msgid "\t\tfor new mail." +msgstr "" + +#: builtins.c:1265 +msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +msgstr "" + +#: builtins.c:1266 +msgid "PATH A colon-separated list of directories to search when" +msgstr "" + +#: builtins.c:1267 +msgid "\t\tlooking for commands." +msgstr "" + +#: builtins.c:1268 +msgid "PROMPT_COMMAND A command to be executed before the printing of each" +msgstr "" + +#: builtins.c:1269 +msgid "\t\tprimary prompt." +msgstr "" + +#: builtins.c:1270 +msgid "PS1 The primary prompt string." +msgstr "" + +#: builtins.c:1271 +msgid "PS2 The secondary prompt string." +msgstr "" + +#: builtins.c:1272 +msgid "PWD\t\tThe full pathname of the current directory." +msgstr "" + +#: builtins.c:1273 +msgid "SHELLOPTS\tA colon-separated list of enabled shell options." +msgstr "" + +#: builtins.c:1274 +msgid "TERM The name of the current terminal type." +msgstr "" + +#: builtins.c:1275 +msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" +msgstr "" + +#: builtins.c:1276 +msgid "\t\t`time' reserved word." +msgstr "" + +#: builtins.c:1277 +msgid "auto_resume Non-null means a command word appearing on a line by" +msgstr "" + +#: builtins.c:1278 +msgid "\t\titself is first looked for in the list of currently" +msgstr "" + +#: builtins.c:1279 +msgid "\t\tstopped jobs. If found there, that job is foregrounded." +msgstr "" + +#: builtins.c:1280 +msgid "\t\tA value of `exact' means that the command word must" +msgstr "" + +#: builtins.c:1281 +msgid "\t\texactly match a command in the list of stopped jobs. A" +msgstr "" + +#: builtins.c:1282 +msgid "\t\tvalue of `substring' means that the command word must" +msgstr "" + +#: builtins.c:1283 +msgid "\t\tmatch a substring of the job. Any other value means that" +msgstr "" + +#: builtins.c:1284 +msgid "\t\tthe command must be a prefix of a stopped job." +msgstr "" + +#: builtins.c:1287 +msgid "histchars Characters controlling history expansion and quick" +msgstr "" + +#: builtins.c:1288 +msgid "\t\tsubstitution. The first character is the history" +msgstr "" + +#: builtins.c:1289 +msgid "\t\tsubstitution character, usually `!'. The second is" +msgstr "" + +#: builtins.c:1290 +msgid "\t\tthe `quick substitution' character, usually `^'. The" +msgstr "" + +#: builtins.c:1291 +msgid "\t\tthird is the `history comment' character, usually `#'." +msgstr "" + +#: builtins.c:1293 +msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" +msgstr "" + +#: builtins.c:1294 +msgid "\t\tcommands should be saved on the history list." +msgstr "" + +#: builtins.c:1306 +msgid "+N\tRotates the stack so that the Nth directory (counting" +msgstr "" + +#: builtins.c:1307 +msgid "\tfrom the left of the list shown by `dirs', starting with" +msgstr "" + +#: builtins.c:1308 builtins.c:1312 +msgid "\tzero) is at the top." +msgstr "" + +#: builtins.c:1310 +msgid "-N\tRotates the stack so that the Nth directory (counting" +msgstr "" + +#: builtins.c:1311 +msgid "\tfrom the right of the list shown by `dirs', starting with" +msgstr "" + +#: builtins.c:1314 +msgid "-n\tsuppress the normal change of directory when adding directories" +msgstr "" + +#: builtins.c:1315 +msgid "\tto the stack, so only the stack is manipulated." +msgstr "" + +#: builtins.c:1317 +msgid "dir\tadds DIR to the directory stack at the top, making it the" +msgstr "" + +#: builtins.c:1318 +msgid "\tnew current working directory." +msgstr "" + +#: builtins.c:1332 +msgid "+N\tremoves the Nth entry counting from the left of the list" +msgstr "" + +#: builtins.c:1333 +msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" +msgstr "" + +#: builtins.c:1334 +msgid "\tremoves the first directory, `popd +1' the second." +msgstr "" + +#: builtins.c:1336 +msgid "-N\tremoves the Nth entry counting from the right of the list" +msgstr "" + +#: builtins.c:1337 +msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" +msgstr "" + +#: builtins.c:1338 +msgid "\tremoves the last directory, `popd -1' the next to last." +msgstr "" + +#: builtins.c:1340 +msgid "-n\tsuppress the normal change of directory when removing directories" +msgstr "" + +#: builtins.c:1341 +msgid "\tfrom the stack, so only the stack is manipulated." +msgstr "" + +#: builtins.c:1363 +msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" +msgstr "" + +#: builtins.c:1364 builtins.c:1367 +msgid "\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins.c:1366 +msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" +msgstr "" + +#: builtins.c:1374 +msgid "Toggle the values of variables controlling optional behavior." +msgstr "" + +#: builtins.c:1375 +msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +msgstr "" + +#: builtins.c:1376 +msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +msgstr "" + +#: builtins.c:1377 +msgid "status indicates whether each OPTNAME is set or unset. The -o" +msgstr "" + +#: builtins.c:1378 +msgid "option restricts the OPTNAMEs to those defined for use with" +msgstr "" + +#: builtins.c:1379 +msgid "`set -o'. With no options, or with the -p option, a list of all" +msgstr "" + +#: builtins.c:1380 +msgid "settable options is displayed, with an indication of whether or" +msgstr "" + +#: builtins.c:1381 +msgid "not each is set." +msgstr "" + +#: builtins.c:1387 +msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" +msgstr "" + +#: builtins.c:1388 +msgid "is a character string which contains three types of objects: plain" +msgstr "" + +#: builtins.c:1389 +msgid "" +"characters, which are simply copied to standard output, character escape" +msgstr "" + +#: builtins.c:1390 +msgid "sequences which are converted and copied to the standard output, and" +msgstr "" + +#: builtins.c:1391 +msgid "" +"format specifications, each of which causes printing of the next successive" +msgstr "" + +#: builtins.c:1392 +msgid "argument. In addition to the standard printf(1) formats, %b means to" +msgstr "" + +#: builtins.c:1393 +msgid "expand backslash escape sequences in the corresponding argument, and %q" +msgstr "" + +#: builtins.c:1394 +msgid "means to quote the argument in a way that can be reused as shell input." +msgstr "" + +#: builtins.c:1401 +msgid "For each NAME, specify how arguments are to be completed." +msgstr "" + +#: builtins.c:1402 +msgid "If the -p option is supplied, or if no options are supplied, existing" +msgstr "" + +#: builtins.c:1403 +msgid "completion specifications are printed in a way that allows them to be" +msgstr "" + +#: builtins.c:1404 +msgid "reused as input. The -r option removes a completion specification for" +msgstr "" + +#: builtins.c:1405 +msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." +msgstr "" + +#: builtins.c:1413 +msgid "Display the possible completions depending on the options. Intended" +msgstr "" + +#: builtins.c:1414 +msgid "" +"to be used from within a shell function generating possible completions." +msgstr "" + +#: builtins.c:1415 +msgid "If the optional WORD argument is supplied, matches against WORD are" +msgstr "" + +#: builtins.c:1416 +msgid "generated." +msgstr "" diff --git a/po.orig/boldquot.sed b/po.orig/boldquot.sed new file mode 100644 index 000000000..4b937aa51 --- /dev/null +++ b/po.orig/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“/g +s/”/”/g +s/‘/‘/g +s/’/’/g diff --git a/po.orig/builtins.pot b/po.orig/builtins.pot new file mode 100644 index 000000000..e30179c3a --- /dev/null +++ b/po.orig/builtins.pot @@ -0,0 +1,2845 @@ +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:244 +msgid "`alias' with no arguments or with the -p option prints the list" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:245 +msgid "of aliases in the form alias NAME=VALUE on standard output." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:246 +msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:247 +msgid "A trailing space in VALUE causes the next word to be checked for" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:248 +msgid "alias substitution when the alias is expanded. Alias returns" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:249 +msgid "true unless a NAME is given for which no alias has been defined." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:257 +msgid "" +"Remove NAMEs from the list of defined aliases. If the -a option is given," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:258 +msgid "then remove all alias definitions." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:266 +msgid "Bind a key sequence to a Readline function or a macro, or set" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:267 +msgid "a Readline variable. The non-option argument syntax is equivalent" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:268 +msgid "to that found in ~/.inputrc, but must be passed as a single argument:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:269 +msgid "bind '\"\\C-x\\C-r\": re-read-init-file'." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:270 +msgid "bind accepts the following options:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:271 +msgid "" +" -m keymap Use `keymap' as the keymap for the duration of this" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:272 +msgid " command. Acceptable keymap names are emacs," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:273 +msgid "" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:274 +msgid " vi-command, and vi-insert." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:275 +msgid " -l List names of functions." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:276 +msgid " -P List function names and bindings." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:277 +msgid " -p List functions and bindings in a form that can be" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:278 +msgid " reused as input." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:279 +msgid " -r keyseq Remove the binding for KEYSEQ." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:280 +msgid " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:281 +msgid "\t\t\t\tKEYSEQ is entered." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:282 +msgid " -f filename Read key bindings from FILENAME." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:283 +msgid " -q function-name Query about which keys invoke the named function." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:284 +msgid "" +" -u function-name Unbind all keys which are bound to the named function." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:285 +msgid " -V List variable names and values" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:286 +msgid " -v List variable names and values in a form that can" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:287 +msgid " be reused as input." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:288 +msgid "" +" -S List key sequences that invoke macros and their values" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:289 +msgid "" +" -s List key sequences that invoke macros and their values" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:290 +msgid " in a form that can be reused as input." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:297 +msgid "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:298 +msgid "break N levels." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:304 +msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:305 +msgid "If N is specified, resume at the N-th enclosing loop." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:311 +msgid "Run a shell builtin. This is useful when you wish to rename a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:312 +msgid "shell builtin to be a function, but need the functionality of the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:313 +msgid "builtin within the function itself." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:320 +msgid "Returns the context of the current subroutine call." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:321 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:325 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:390 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:392 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:401 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:404 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:408 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:445 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:487 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:491 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:498 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:509 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:513 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:552 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:555 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:559 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:562 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:630 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:637 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:692 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:713 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:718 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:722 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:745 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:835 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:919 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:921 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:943 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:946 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:948 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:950 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:952 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:954 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:957 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:966 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:968 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:973 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:976 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1019 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1024 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1028 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1032 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1034 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1047 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1062 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1226 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1231 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1305 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1309 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1313 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1316 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1319 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1331 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1335 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1339 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1342 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1354 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1362 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1365 +msgid "" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:322 +msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:323 +msgid "returns \"$line $subroutine $filename\"; this extra information" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:324 +msgid "can be used used to provide a stack trace." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:326 +msgid "The value of EXPR indicates how many call frames to go back before the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:327 +msgid "current one; the top frame is frame 0." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:334 +msgid "Change the current directory to DIR. The variable $HOME is the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:335 +msgid "default DIR. The variable CDPATH defines the search path for" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:336 +msgid "the directory containing DIR. Alternative directory names in CDPATH" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:337 +msgid "are separated by a colon (:). A null directory name is the same as" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:338 +msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:339 +msgid "then CDPATH is not used. If the directory is not found, and the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:340 +msgid "shell option `cdable_vars' is set, then try the word as a variable" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:341 +msgid "name. If that variable has a value, then cd to the value of that" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:342 +msgid "variable. The -P option says to use the physical directory structure" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:343 +msgid "" +"instead of following symbolic links; the -L option forces symbolic links" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:344 +msgid "to be followed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:350 +msgid "Print the current working directory. With the -P option, pwd prints" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:351 +msgid "the physical directory, without any symbolic links; the -L option" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:352 +msgid "makes pwd follow symbolic links." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:358 +msgid "No effect; the command does nothing. A zero exit code is returned." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:364 +msgid "Return a successful result." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:370 +msgid "Return an unsuccessful result." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:376 +msgid "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:377 +msgid "function called `ls', and you wish to call the command `ls', you can" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:378 +msgid "say \"command ls\". If the -p option is given, a default value is used" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:379 +msgid "for PATH that is guaranteed to find all of the standard utilities. If" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:380 +msgid "the -V or -v option is given, a string is printed describing COMMAND." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:381 +msgid "The -V option produces a more verbose description." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:387 +msgid "Declare variables and/or give them attributes. If no NAMEs are" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:388 +msgid "given, then display the values of variables instead. The -p option" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:389 +msgid "will display the attributes and values of each NAME." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:391 +msgid "The flags are:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:393 +msgid " -a\tto make NAMEs arrays (if supported)" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:394 +msgid " -f\tto select from among function names only" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:395 +msgid "" +" -F\tto display function names (and line number and source file name if" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:396 +msgid "\tdebugging) without definitions" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:397 +msgid " -i\tto make NAMEs have the `integer' attribute" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:398 +msgid " -r\tto make NAMEs readonly" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:399 +msgid " -t\tto make NAMEs have the `trace' attribute" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:400 +msgid " -x\tto make NAMEs export" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:402 +msgid "Variables with the integer attribute have arithmetic evaluation (see" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:403 +msgid "`let') done when the variable is assigned to." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:405 +msgid "When displaying values of variables, -f displays a function's name" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:406 +msgid "and definition. The -F option restricts the display to function" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:407 +msgid "name only." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:409 +msgid "Using `+' instead of `-' turns off the given attribute instead. When" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:410 +msgid "used in a function, makes NAMEs local, as with the `local' command." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:416 +msgid "Obsolete. See `declare'." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:422 +msgid "Create a local variable called NAME, and give it VALUE. LOCAL" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:423 +msgid "can only be used within a function; it makes the variable NAME" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:424 +msgid "have a visible scope restricted to that function and its children." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:431 +msgid "Output the ARGs. If -n is specified, the trailing newline is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:432 +msgid "suppressed. If the -e option is given, interpretation of the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:433 +msgid "following backslash-escaped characters is turned on:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:434 +msgid "\t\\a\talert (bell)" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:435 +msgid "\t\\b\tbackspace" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:436 +msgid "\t\\c\tsuppress trailing newline" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:437 +msgid "\t\\E\tescape character" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:438 +msgid "\t\\f\tform feed" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:439 +msgid "\t\\n\tnew line" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:440 +msgid "\t\\r\tcarriage return" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:441 +msgid "\t\\t\thorizontal tab" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:442 +msgid "\t\\v\tvertical tab" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:443 +msgid "\t\\\\\tbackslash" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:444 +msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:446 +msgid "You can explicitly turn off the interpretation of the above characters" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:447 +msgid "with the -E option." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:455 +msgid "" +"Output the ARGs. If -n is specified, the trailing newline is suppressed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:462 +msgid "Enable and disable builtin shell commands. This allows" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:463 +msgid "you to use a disk command which has the same name as a shell" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:464 +msgid "builtin without specifying a full pathname. If -n is used, the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:465 +msgid "NAMEs become disabled; otherwise NAMEs are enabled. For example," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:466 +msgid "to use the `test' found in $PATH instead of the shell builtin" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:467 +msgid "version, type `enable -n test'. On systems supporting dynamic" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:468 +msgid "loading, the -f option may be used to load new builtins from the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:469 +msgid "shared object FILENAME. The -d option will delete a builtin" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:470 +msgid "previously loaded with -f. If no non-option names are given, or" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:471 +msgid "the -p option is supplied, a list of builtins is printed. The" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:472 +msgid "-a option means to print every builtin with an indication of whether" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:473 +msgid "" +"or not it is enabled. The -s option restricts the output to the POSIX.2" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:474 +msgid "" +"`special' builtins. The -n option displays a list of all disabled builtins." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:480 +msgid "Read ARGs as input to the shell and execute the resulting command(s)." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:486 +msgid "Getopts is used by shell procedures to parse positional parameters." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:488 +msgid "OPTSTRING contains the option letters to be recognized; if a letter" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:489 +msgid "is followed by a colon, the option is expected to have an argument," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:490 +msgid "which should be separated from it by white space." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:492 +msgid "Each time it is invoked, getopts will place the next option in the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:493 +msgid "shell variable $name, initializing name if it does not exist, and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:494 +msgid "the index of the next argument to be processed into the shell" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:495 +msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:496 +msgid "a shell script is invoked. When an option requires an argument," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:497 +msgid "getopts places that argument into the shell variable OPTARG." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:499 +msgid "getopts reports errors in one of two ways. If the first character" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:500 +msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:501 +msgid "this mode, no error messages are printed. If an invalid option is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:502 +msgid "seen, getopts places the option character found into OPTARG. If a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:503 +msgid "required argument is not found, getopts places a ':' into NAME and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:504 +msgid "sets OPTARG to the option character found. If getopts is not in" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:505 +msgid "silent mode, and an invalid option is seen, getopts places '?' into" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:506 +msgid "NAME and unsets OPTARG. If a required argument is not found, a '?'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:507 +msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:508 +msgid "printed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:510 +msgid "If the shell variable OPTERR has the value 0, getopts disables the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:511 +msgid "printing of error messages, even if the first character of" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:512 +msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:514 +msgid "Getopts normally parses the positional parameters ($0 - $9), but if" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:515 +msgid "more arguments are given, they are parsed instead." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:521 +msgid "Exec FILE, replacing this shell with the specified program." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:522 +msgid "If FILE is not specified, the redirections take effect in this" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:523 +msgid "shell. If the first argument is `-l', then place a dash in the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:524 +msgid "zeroth arg passed to FILE, as login does. If the `-c' option" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:525 +msgid "is supplied, FILE is executed with a null environment. The `-a'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:526 +msgid "option means to make set argv[0] of the executed process to NAME." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:527 +msgid "If the file cannot be executed and the shell is not interactive," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:528 +msgid "then the shell exits, unless the shell option `execfail' is set." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:534 +msgid "Exit the shell with a status of N. If N is omitted, the exit status" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:535 +msgid "is that of the last command executed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:541 +msgid "Logout of a login shell." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:548 +msgid "" +"fc is used to list or edit and re-execute commands from the history list." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:549 +msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:550 +msgid "string, which means the most recent command beginning with that" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:551 +msgid "string." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:553 +msgid "" +" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:554 +msgid " then vi." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:556 +msgid " -l means list lines instead of editing." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:557 +msgid " -n means no line numbers listed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:558 +msgid "" +" -r means reverse the order of the lines (making it newest listed first)." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:560 +msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:561 +msgid "re-executed after the substitution OLD=NEW is performed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:563 +msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:564 +msgid "runs the last command beginning with `cc' and typing `r' re-executes" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:565 +msgid "the last command." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:573 +msgid "Place JOB_SPEC in the foreground, and make it the current job. If" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:574 +msgid "JOB_SPEC is not present, the shell's notion of the current job is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:575 +msgid "used." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:583 +msgid "Place JOB_SPEC in the background, as if it had been started with" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:584 +msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:585 +msgid "job is used." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:592 +msgid "For each NAME, the full pathname of the command is determined and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:593 +msgid "remembered. If the -p option is supplied, PATHNAME is used as the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:594 +msgid "full pathname of NAME, and no path search is performed. The -r" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:595 +msgid "option causes the shell to forget all remembered locations. The -d" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:596 +msgid "option causes the shell to forget the remembered location of each NAME." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:597 +msgid "If the -t option is supplied the full pathname to which each NAME" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:598 +msgid "corresponds is printed. If multiple NAME arguments are supplied with" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:599 +msgid "-t, the NAME is printed before the hashed full pathname. The -l option" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:600 +msgid "causes output to be displayed in a format that may be reused as input." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:601 +msgid "" +"If no arguments are given, information about remembered commands is " +"displayed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:608 +msgid "Display helpful information about builtin commands. If PATTERN is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:609 +msgid "specified, gives detailed help on all commands matching PATTERN," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:610 +msgid "otherwise a list of the builtins is printed. The -s option" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:611 +msgid "restricts the output for each builtin command matching PATTERN to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:612 +msgid "a short usage synopsis." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:620 +msgid "Display the history list with line numbers. Lines listed with" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:621 +msgid "with a `*' have been modified. Argument of N says to list only" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:622 +msgid "the last N lines. The `-c' option causes the history list to be" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:623 +msgid "cleared by deleting all of the entries. The `-d' option deletes" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:624 +msgid "the history entry at offset OFFSET. The `-w' option writes out the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:625 +msgid "current history to the history file; `-r' means to read the file and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:626 +msgid "append the contents to the history list instead. `-a' means" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:627 +msgid "to append history lines from this session to the history file." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:628 +msgid "Argument `-n' means to read all history lines not already read" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:629 +msgid "from the history file and append them to the history list." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:631 +msgid "If FILENAME is given, then that is used as the history file else" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:632 +msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:633 +msgid "If the -s option is supplied, the non-option ARGs are appended to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:634 +msgid "the history list as a single entry. The -p option means to perform" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:635 +msgid "history expansion on each ARG and display the result, without storing" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:636 +msgid "anything in the history list." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:638 +msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:639 +msgid "as a format string for strftime(3) to print the time stamp associated" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:640 +msgid "" +"with each displayed history entry. No time stamps are printed otherwise." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:648 +msgid "Lists the active jobs. The -l option lists process id's in addition" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:649 +msgid "to the normal information; the -p option lists process id's only." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:650 +msgid "If -n is given, only processes that have changed status since the last" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:651 +msgid "notification are printed. JOBSPEC restricts output to that job. The" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:652 +msgid "-r and -s options restrict output to running and stopped jobs only," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:653 +msgid "respectively. Without options, the status of all active jobs is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:654 +msgid "printed. If -x is given, COMMAND is run after all job specifications" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:655 +msgid "" +"that appear in ARGS have been replaced with the process ID of that job's" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:656 +msgid "process group leader." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:664 +msgid "" +"By default, removes each JOBSPEC argument from the table of active jobs." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:665 +msgid "" +"If the -h option is given, the job is not removed from the table, but is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:666 +msgid "marked so that SIGHUP is not sent to the job if the shell receives a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:667 +msgid "" +"SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:668 +msgid "" +"jobs from the job table; the -r option means to remove only running jobs." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:675 +msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:676 +msgid "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:677 +msgid "lists the signal names; if arguments follow `-l' they are assumed to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:678 +msgid "be signal numbers for which names should be listed. Kill is a shell" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:679 +msgid "builtin for two reasons: it allows job IDs to be used instead of" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:680 +msgid "process IDs, and, if you have reached the limit on processes that" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:681 +msgid "you can create, you don't have to start a process to kill another one." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:687 +msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:688 +msgid "is done in fixed-width integers with no check for overflow, though" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:689 +msgid "division by 0 is trapped and flagged as an error. The following" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:690 +msgid "list of operators is grouped into levels of equal-precedence operators." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:691 +msgid "The levels are listed in order of decreasing precedence." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:693 +msgid "\tid++, id--\tvariable post-increment, post-decrement" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:694 +msgid "\t++id, --id\tvariable pre-increment, pre-decrement" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:695 +msgid "\t-, +\t\tunary minus, plus" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:696 +msgid "\t!, ~\t\tlogical and bitwise negation" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:697 +msgid "\t**\t\texponentiation" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:698 +msgid "\t*, /, %\t\tmultiplication, division, remainder" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:699 +msgid "\t+, -\t\taddition, subtraction" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:700 +msgid "\t<<, >>\t\tleft and right bitwise shifts" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:701 +msgid "\t<=, >=, <, >\tcomparison" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:702 +msgid "\t==, !=\t\tequality, inequality" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:703 +msgid "\t&\t\tbitwise AND" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:704 +msgid "\t^\t\tbitwise XOR" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:705 +msgid "\t|\t\tbitwise OR" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:706 +msgid "\t&&\t\tlogical AND" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:707 +msgid "\t||\t\tlogical OR" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:708 +msgid "\texpr ? expr : expr" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:709 +msgid "\t\t\tconditional operator" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:710 +msgid "\t=, *=, /=, %=," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:711 +msgid "\t+=, -=, <<=, >>=," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:712 +msgid "\t&=, ^=, |=\tassignment" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:714 +msgid "Shell variables are allowed as operands. The name of the variable" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:715 +msgid "is replaced by its value (coerced to a fixed-width integer) within" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:716 +msgid "an expression. The variable need not have its integer attribute" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:717 +msgid "turned on to be used in an expression." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:719 +msgid "Operators are evaluated in order of precedence. Sub-expressions in" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:720 +msgid "parentheses are evaluated first and may override the precedence" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:721 +msgid "rules above." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:723 +msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:724 +msgid "otherwise." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:730 +msgid "" +"One line is read from the standard input, or from file descriptor FD if the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:731 +msgid "" +"-u option is supplied, and the first word is assigned to the first NAME," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:732 +msgid "" +"the second word to the second NAME, and so on, with leftover words assigned" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:733 +msgid "" +"to the last NAME. Only the characters found in $IFS are recognized as word" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:734 +msgid "" +"delimiters. If no NAMEs are supplied, the line read is stored in the REPLY" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:735 +msgid "variable. If the -r option is given, this signifies `raw' input, and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:736 +msgid "backslash escaping is disabled. The -d option causes read to continue" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:737 +msgid "" +"until the first character of DELIM is read, rather than newline. If the -p" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:738 +msgid "" +"option is supplied, the string PROMPT is output without a trailing newline" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:739 +msgid "" +"before attempting to read. If -a is supplied, the words read are assigned" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:740 +msgid "" +"to sequential indices of ARRAY, starting at zero. If -e is supplied and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:741 +msgid "" +"the shell is interactive, readline is used to obtain the line. If -n is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:742 +msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:743 +msgid "characters have been read. The -s option causes input coming from a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:744 +msgid "terminal to not be echoed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:746 +msgid "" +"The -t option causes read to time out and return failure if a complete line" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:747 +msgid "" +"of input is not read within TIMEOUT seconds. If the TMOUT variable is set," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:748 +msgid "" +"its value is the default timeout. The return code is zero, unless end-of-" +"file" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:749 +msgid "" +"is encountered, read times out, or an invalid file descriptor is supplied as" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:750 +msgid "the argument to -u." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:756 +msgid "Causes a function to exit with the return value specified by N. If N" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:757 +msgid "is omitted, the return status is that of the last command." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:763 +msgid " -a Mark variables which are modified or created for export." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:764 +msgid " -b Notify of job termination immediately." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:765 +msgid " -e Exit immediately if a command exits with a non-zero status." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:766 +msgid " -f Disable file name generation (globbing)." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:767 +msgid " -h Remember the location of commands as they are looked up." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:768 +msgid " -k All assignment arguments are placed in the environment for a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:769 +msgid " command, not just those that precede the command name." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:770 +msgid " -m Job control is enabled." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:771 +msgid " -n Read commands but do not execute them." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:772 +msgid " -o option-name" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:773 +msgid " Set the variable corresponding to option-name:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:774 +msgid " allexport same as -a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:775 +msgid " braceexpand same as -B" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:777 +msgid " emacs use an emacs-style line editing interface" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:779 +msgid " errexit same as -e" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:780 +msgid " errtrace same as -E" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:781 +msgid " functrace same as -T" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:782 +msgid " hashall same as -h" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:784 +msgid " histexpand same as -H" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:787 +msgid " history enable command history" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:789 +msgid " ignoreeof the shell will not exit upon reading EOF" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:790 +msgid " interactive-comments" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:791 +msgid "" +" allow comments to appear in interactive commands" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:792 +msgid " keyword same as -k" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:793 +msgid " monitor same as -m" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:794 +msgid " noclobber same as -C" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:795 +msgid " noexec same as -n" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:796 +msgid " noglob same as -f" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:797 +msgid " nolog currently accepted but ignored" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:798 +msgid " notify same as -b" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:799 +msgid " nounset same as -u" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:800 +msgid " onecmd same as -t" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:801 +msgid " physical same as -P" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:802 +msgid "" +" pipefail the return value of a pipeline is the status of" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:803 +msgid "" +" the last command to exit with a non-zero status," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:804 +msgid "" +" or zero if no command exited with a non-zero status" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:805 +msgid " posix change the behavior of bash where the default" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:806 +msgid " operation differs from the 1003.2 standard to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:807 +msgid " match the standard" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:808 +msgid " privileged same as -p" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:809 +msgid " verbose same as -v" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:811 +msgid " vi use a vi-style line editing interface" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:813 +msgid " xtrace same as -x" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:814 +msgid "" +" -p Turned on whenever the real and effective user ids do not match." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:815 +msgid " Disables processing of the $ENV file and importing of shell" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:816 +msgid "" +" functions. Turning this option off causes the effective uid and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:817 +msgid " gid to be set to the real uid and gid." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:818 +msgid " -t Exit after reading and executing one command." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:819 +msgid " -u Treat unset variables as an error when substituting." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:820 +msgid " -v Print shell input lines as they are read." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:821 +msgid " -x Print commands and their arguments as they are executed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:823 +msgid " -B the shell will perform brace expansion" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:825 +msgid " -C If set, disallow existing regular files to be overwritten" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:826 +msgid " by redirection of output." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:827 +msgid " -E If set, the ERR trap is inherited by shell functions." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:829 +msgid " -H Enable ! style history substitution. This flag is on" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:830 +msgid " by default." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:832 +msgid " -P If set, do not follow symbolic links when executing commands" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:833 +msgid " such as cd which change the current directory." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:834 +msgid " -T If set, the DEBUG trap is inherited by shell functions." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:836 +msgid "Using + rather than - causes these flags to be turned off. The" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:837 +msgid "flags can also be used upon invocation of the shell. The current" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:838 +msgid "set of flags may be found in $-. The remaining n ARGs are positional" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:839 +msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:840 +msgid "ARGs are given, all shell variables are printed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:846 +msgid "For each NAME, remove the corresponding variable or function. Given" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:847 +msgid "the `-v', unset will only act on variables. Given the `-f' flag," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:848 +msgid "unset will only act on functions. With neither flag, unset first" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:849 +msgid "tries to unset a variable, and if that fails, then tries to unset a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:850 +msgid "function. Some variables cannot be unset; also see readonly." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:856 +msgid "NAMEs are marked for automatic export to the environment of" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:857 +msgid "subsequently executed commands. If the -f option is given," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:858 +msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:859 +msgid "is given, a list of all names that are exported in this shell is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:860 +msgid "printed. An argument of `-n' says to remove the export property" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:861 +msgid "from subsequent NAMEs. An argument of `--' disables further option" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:862 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:874 +msgid "processing." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:868 +msgid "The given NAMEs are marked readonly and the values of these NAMEs may" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:869 +msgid "not be changed by subsequent assignment. If the -f option is given," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:870 +msgid "then functions corresponding to the NAMEs are so marked. If no" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:871 +msgid "arguments are given, or if `-p' is given, a list of all readonly names" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:872 +msgid "is printed. The `-a' option means to treat each NAME as" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:873 +msgid "an array variable. An argument of `--' disables further option" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:880 +msgid "The positional parameters from $N+1 ... are renamed to $1 ... If N is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:881 +msgid "not given, it is assumed to be 1." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:887 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:896 +msgid "Read and execute commands from FILENAME and return. The pathnames" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:888 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:897 +msgid "in $PATH are used to find the directory containing FILENAME. If any" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:889 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:898 +msgid "ARGUMENTS are supplied, they become the positional parameters when" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:890 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:899 +msgid "FILENAME is executed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:906 +msgid "Suspend the execution of this shell until it receives a SIGCONT" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:907 +msgid "signal. The `-f' if specified says not to complain about this" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:908 +msgid "being a login shell if it is; just suspend anyway." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:915 +msgid "Exits with a status of 0 (true) or 1 (false) depending on" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:916 +msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:917 +msgid "expressions are often used to examine the status of a file. There" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:918 +msgid "are string operators as well, and numeric comparison operators." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:920 +msgid "File operators:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:922 +msgid " -a FILE True if file exists." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:923 +msgid " -b FILE True if file is block special." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:924 +msgid " -c FILE True if file is character special." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:925 +msgid " -d FILE True if file is a directory." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:926 +msgid " -e FILE True if file exists." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:927 +msgid " -f FILE True if file exists and is a regular file." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:928 +msgid " -g FILE True if file is set-group-id." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:929 +msgid " -h FILE True if file is a symbolic link." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:930 +msgid " -L FILE True if file is a symbolic link." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:931 +msgid " -k FILE True if file has its `sticky' bit set." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:932 +msgid " -p FILE True if file is a named pipe." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:933 +msgid " -r FILE True if file is readable by you." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:934 +msgid " -s FILE True if file exists and is not empty." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:935 +msgid " -S FILE True if file is a socket." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:936 +msgid " -t FD True if FD is opened on a terminal." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:937 +msgid " -u FILE True if the file is set-user-id." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:938 +msgid " -w FILE True if the file is writable by you." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:939 +msgid " -x FILE True if the file is executable by you." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:940 +msgid " -O FILE True if the file is effectively owned by you." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:941 +msgid " -G FILE True if the file is effectively owned by your group." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:942 +msgid "" +" -N FILE True if the file has been modified since it was last read." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:944 +msgid " FILE1 -nt FILE2 True if file1 is newer than file2 (according to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:945 +msgid " modification date)." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:947 +msgid " FILE1 -ot FILE2 True if file1 is older than file2." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:949 +msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:951 +msgid "String operators:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:953 +msgid " -z STRING True if string is empty." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:955 +msgid " -n STRING" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:956 +msgid " STRING True if string is not empty." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:958 +msgid " STRING1 = STRING2" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:959 +msgid " True if the strings are equal." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:960 +msgid " STRING1 != STRING2" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:961 +msgid " True if the strings are not equal." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:962 +msgid " STRING1 < STRING2" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:963 +msgid "" +" True if STRING1 sorts before STRING2 lexicographically." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:964 +msgid " STRING1 > STRING2" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:965 +msgid "" +" True if STRING1 sorts after STRING2 lexicographically." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:967 +msgid "Other operators:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:969 +msgid " -o OPTION True if the shell option OPTION is enabled." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:970 +msgid " ! EXPR True if expr is false." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:971 +msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:972 +msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:974 +msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:975 +msgid " -lt, -le, -gt, or -ge." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:977 +msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:978 +msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:979 +msgid "than ARG2." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:985 +msgid "This is a synonym for the \"test\" builtin, but the last" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:986 +msgid "argument must be a literal `]', to match the opening `['." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:992 +msgid "Print the accumulated user and system times for processes run from" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:993 +msgid "the shell." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:999 +msgid "The command ARG is to be read and executed when the shell receives" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1000 +msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1001 +msgid "reset to their original values. If ARG is the null string each" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1002 +msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1003 +msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1004 +msgid "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1005 +msgid "command. If ARG is `-p' then the trap commands associated with" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1006 +msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1007 +msgid "only `-p' is given, trap prints the list of commands associated with" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1008 +msgid "" +"each signal number. Each SIGNAL_SPEC is either a signal name in " +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1009 +msgid "or a signal number. `trap -l' prints a list of signal names and their" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1010 +msgid "corresponding numbers. Note that a signal can be sent to the shell" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1011 +msgid "with \"kill -signal $$\"." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1017 +msgid "For each NAME, indicate how it would be interpreted if used as a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1018 +msgid "command name." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1020 +msgid "If the -t option is used, `type' outputs a single word which is one of" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1021 +msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1022 +msgid "alias, shell reserved word, shell function, shell builtin, disk file," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1023 +msgid "or unfound, respectively." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1025 +msgid "If the -p flag is used, `type' either returns the name of the disk" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1026 +msgid "file that would be executed, or nothing if `type -t NAME' would not" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1027 +msgid "return `file'." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1029 +msgid "If the -a flag is used, `type' displays all of the places that contain" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1030 +msgid "an executable named `file'. This includes aliases, builtins, and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1031 +msgid "functions, if and only if the -p flag is not also used." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1033 +msgid "The -f flag suppresses shell function lookup." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1035 +msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1036 +msgid "builtin, or function, and returns the name of the disk file that would" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1037 +msgid "be executed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1044 +msgid "Ulimit provides control over the resources available to processes" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1045 +msgid "started by the shell, on systems that allow such control. If an" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1046 +msgid "option is given, it is interpreted as follows:" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1048 +msgid " -S\tuse the `soft' resource limit" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1049 +msgid " -H\tuse the `hard' resource limit" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1050 +msgid " -a\tall current limits are reported" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1051 +msgid " -c\tthe maximum size of core files created" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1052 +msgid " -d\tthe maximum size of a process's data segment" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1053 +msgid " -f\tthe maximum size of files created by the shell" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1054 +msgid " -l\tthe maximum size a process may lock into memory" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1055 +msgid " -m\tthe maximum resident set size" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1056 +msgid " -n\tthe maximum number of open file descriptors" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1057 +msgid " -p\tthe pipe buffer size" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1058 +msgid " -s\tthe maximum stack size" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1059 +msgid " -t\tthe maximum amount of cpu time in seconds" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1060 +msgid " -u\tthe maximum number of user processes" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1061 +msgid " -v\tthe size of virtual memory" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1063 +msgid "If LIMIT is given, it is the new value of the specified resource;" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1064 +msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1065 +msgid "" +"the current soft limit, the current hard limit, and no limit, respectively." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1066 +msgid "Otherwise, the current value of the specified resource is printed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1067 +msgid "If no option is given, then -f is assumed. Values are in 1024-byte" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1068 +msgid "increments, except for -t, which is in seconds, -p, which is in" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1069 +msgid "increments of 512 bytes, and -u, which is an unscaled number of" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1070 +msgid "processes." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1077 +msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1078 +msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1079 +msgid "option makes the output symbolic; otherwise an octal number is output." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1080 +msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1081 +msgid "that may be used as input. If MODE begins with a digit, it is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1082 +msgid "interpreted as an octal number, otherwise it is a symbolic mode string" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1083 +msgid "like that accepted by chmod(1)." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1090 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1102 +msgid "Wait for the specified process and report its termination status. If" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1091 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1103 +msgid "N is not given, all currently active child processes are waited for," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1092 +msgid "and the return code is zero. N may be a process ID or a job" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1093 +msgid "specification; if a job spec is given, all processes in the job's" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1094 +msgid "pipeline are waited for." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1104 +msgid "and the return code is zero. N is a process ID; if it is not given," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1105 +msgid "all child processes of the shell are waited for." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1112 +msgid "The `for' loop executes a sequence of commands for each member in a" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1113 +msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1114 +msgid "assumed. For each element in WORDS, NAME is set to that element, and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1115 +msgid "the COMMANDS are executed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1121 +msgid "Equivalent to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1122 +msgid "\t(( EXP1 ))" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1123 +msgid "\twhile (( EXP2 )); do" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1124 +msgid "\t\tCOMMANDS" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1125 +msgid "\t\t(( EXP3 ))" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1126 +msgid "\tdone" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1127 +msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1128 +msgid "omitted, it behaves as if it evaluates to 1." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1134 +msgid "The WORDS are expanded, generating a list of words. The" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1135 +msgid "set of expanded words is printed on the standard error, each" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1136 +msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1137 +msgid "is assumed. The PS3 prompt is then displayed and a line read" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1138 +msgid "from the standard input. If the line consists of the number" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1139 +msgid "corresponding to one of the displayed words, then NAME is set" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1140 +msgid "to that word. If the line is empty, WORDS and the prompt are" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1141 +msgid "redisplayed. If EOF is read, the command completes. Any other" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1142 +msgid "value read causes NAME to be set to null. The line read is saved" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1143 +msgid "in the variable REPLY. COMMANDS are executed after each selection" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1144 +msgid "until a break command is executed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1150 +msgid "Execute PIPELINE and print a summary of the real time, user CPU time," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1151 +msgid "and system CPU time spent executing PIPELINE when it terminates." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1152 +msgid "The return status is the return status of PIPELINE. The `-p' option" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1153 +msgid "prints the timing summary in a slightly different format. This uses" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1154 +msgid "the value of the TIMEFORMAT variable as the output format." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1160 +msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1161 +msgid "`|' is used to separate multiple patterns." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1167 +msgid "" +"The if COMMANDS are executed. If the exit status is zero, then the then" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1168 +msgid "" +"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1169 +msgid "" +"in turn, and if the exit status is zero, the corresponding then COMMANDS" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1170 +msgid "" +"are executed and the if command completes. Otherwise, the else COMMANDS" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1171 +msgid "" +"are executed, if present. The exit status is the exit status of the last" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1172 +msgid "command executed, or zero if no condition tested true." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1178 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1185 +msgid "Expand and execute COMMANDS as long as the final command in the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1179 +msgid "`while' COMMANDS has an exit status of zero." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1186 +msgid "`until' COMMANDS has an exit status which is not zero." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1192 +msgid "Create a simple command invoked by NAME which runs COMMANDS." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1193 +msgid "Arguments on the command line along with NAME are passed to the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1194 +msgid "function as $0 .. $n." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1200 +msgid "Run a set of commands in a group. This is one way to redirect an" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1201 +msgid "entire set of commands." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1207 +msgid "This is similar to the `fg' command. Resume a stopped or background" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1208 +msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1209 +msgid "WORD, then the job whose name begins with WORD is used. Following the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1210 +msgid "job specification with a `&' places the job in the background." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1216 +msgid "The EXPRESSION is evaluated according to the rules for arithmetic" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1217 +msgid "evaluation. Equivalent to \"let EXPRESSION\"." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1223 +msgid "" +"Returns a status of 0 or 1 depending on the evaluation of the conditional" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1224 +msgid "" +"expression EXPRESSION. Expressions are composed of the same primaries used" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1225 +msgid "" +"by the `test' builtin, and may be combined using the following operators" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1227 +msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1228 +msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1229 +msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1230 +msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1232 +msgid "" +"When the `==' and `!=' operators are used, the string to the right of the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1233 +msgid "operator is used as a pattern and pattern matching is performed. The" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1234 +msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1235 +msgid "determine the expression's value." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1241 +msgid "BASH_VERSION Version information for this Bash." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1242 +msgid "CDPATH A colon separated list of directories to search" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1243 +msgid "\t\twhen the argument to `cd' is not found in the current" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1244 +msgid "\t\tdirectory." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1245 +msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1246 +msgid "\t\tbe ignored by pathname expansion." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1248 +msgid "" +"HISTFILE The name of the file where your command history is stored." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1249 +msgid "HISTFILESIZE The maximum number of lines this file can contain." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1250 +msgid "HISTSIZE The maximum number of history lines that a running" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1251 +msgid "\t\tshell can access." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1253 +msgid "HOME The complete pathname to your login directory." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1254 +msgid "HOSTNAME\tThe name of the current host." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1255 +msgid "HOSTTYPE The type of CPU this version of Bash is running under." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1256 +msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1257 +msgid "\t\tcharacter as the sole input. If set, then the value" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1258 +msgid "\t\tof it is the number of EOF characters that can be seen" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1259 +msgid "\t\tin a row on an empty line before the shell will exit" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1260 +msgid "\t\t(default 10). When unset, EOF signifies the end of input." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1261 +msgid "MACHTYPE\tA string describing the current system Bash is running on." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1262 +msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1263 +msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1264 +msgid "\t\tfor new mail." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1265 +msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1266 +msgid "PATH A colon-separated list of directories to search when" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1267 +msgid "\t\tlooking for commands." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1268 +msgid "PROMPT_COMMAND A command to be executed before the printing of each" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1269 +msgid "\t\tprimary prompt." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1270 +msgid "PS1 The primary prompt string." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1271 +msgid "PS2 The secondary prompt string." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1272 +msgid "PWD\t\tThe full pathname of the current directory." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1273 +msgid "SHELLOPTS\tA colon-separated list of enabled shell options." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1274 +msgid "TERM The name of the current terminal type." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1275 +msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1276 +msgid "\t\t`time' reserved word." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1277 +msgid "auto_resume Non-null means a command word appearing on a line by" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1278 +msgid "\t\titself is first looked for in the list of currently" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1279 +msgid "\t\tstopped jobs. If found there, that job is foregrounded." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1280 +msgid "\t\tA value of `exact' means that the command word must" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1281 +msgid "\t\texactly match a command in the list of stopped jobs. A" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1282 +msgid "\t\tvalue of `substring' means that the command word must" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1283 +msgid "\t\tmatch a substring of the job. Any other value means that" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1284 +msgid "\t\tthe command must be a prefix of a stopped job." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1287 +msgid "histchars Characters controlling history expansion and quick" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1288 +msgid "\t\tsubstitution. The first character is the history" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1289 +msgid "\t\tsubstitution character, usually `!'. The second is" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1290 +msgid "\t\tthe `quick substitution' character, usually `^'. The" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1291 +msgid "\t\tthird is the `history comment' character, usually `#'." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1293 +msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1294 +msgid "\t\tcommands should be saved on the history list." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1302 +msgid "Adds a directory to the top of the directory stack, or rotates" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1303 +msgid "the stack, making the new top of the stack the current working" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1304 +msgid "directory. With no arguments, exchanges the top two directories." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1306 +msgid "+N\tRotates the stack so that the Nth directory (counting" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1307 +msgid "\tfrom the left of the list shown by `dirs', starting with" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1308 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1312 +msgid "\tzero) is at the top." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1310 +msgid "-N\tRotates the stack so that the Nth directory (counting" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1311 +msgid "\tfrom the right of the list shown by `dirs', starting with" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1314 +msgid "-n\tsuppress the normal change of directory when adding directories" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1315 +msgid "\tto the stack, so only the stack is manipulated." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1317 +msgid "dir\tadds DIR to the directory stack at the top, making it the" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1318 +msgid "\tnew current working directory." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1320 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1343 +msgid "You can see the directory stack with the `dirs' command." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1328 +msgid "Removes entries from the directory stack. With no arguments," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1329 +msgid "removes the top directory from the stack, and cd's to the new" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1330 +msgid "top directory." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1332 +msgid "+N\tremoves the Nth entry counting from the left of the list" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1333 +msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1334 +msgid "\tremoves the first directory, `popd +1' the second." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1336 +msgid "-N\tremoves the Nth entry counting from the right of the list" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1337 +msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1338 +msgid "\tremoves the last directory, `popd -1' the next to last." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1340 +msgid "-n\tsuppress the normal change of directory when removing directories" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1341 +msgid "\tfrom the stack, so only the stack is manipulated." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1351 +msgid "Display the list of currently remembered directories. Directories" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1352 +msgid "find their way onto the list with the `pushd' command; you can get" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1353 +msgid "back up through the list with the `popd' command." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1355 +msgid "The -l flag specifies that `dirs' should not print shorthand versions" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1356 +msgid "of directories which are relative to your home directory. This means" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1357 +msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1358 +msgid "causes `dirs' to print the directory stack with one entry per line," +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1359 +msgid "prepending the directory name with its position in the stack. The -p" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1360 +msgid "flag does the same thing, but the stack position is not prepended." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1361 +msgid "The -c flag clears the directory stack by deleting all of the elements." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1363 +msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1364 +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1367 +msgid "\tdirs when invoked without options, starting with zero." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1366 +msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1374 +msgid "Toggle the values of variables controlling optional behavior." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1375 +msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1376 +msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1377 +msgid "status indicates whether each OPTNAME is set or unset. The -o" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1378 +msgid "option restricts the OPTNAMEs to those defined for use with" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1379 +msgid "`set -o'. With no options, or with the -p option, a list of all" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1380 +msgid "settable options is displayed, with an indication of whether or" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1381 +msgid "not each is set." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1387 +msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1388 +msgid "is a character string which contains three types of objects: plain" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1389 +msgid "" +"characters, which are simply copied to standard output, character escape" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1390 +msgid "sequences which are converted and copied to the standard output, and" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1391 +msgid "" +"format specifications, each of which causes printing of the next successive" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1392 +msgid "argument. In addition to the standard printf(1) formats, %b means to" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1393 +msgid "expand backslash escape sequences in the corresponding argument, and %q" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1394 +msgid "means to quote the argument in a way that can be reused as shell input." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1401 +msgid "For each NAME, specify how arguments are to be completed." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1402 +msgid "If the -p option is supplied, or if no options are supplied, existing" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1403 +msgid "completion specifications are printed in a way that allows them to be" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1404 +msgid "reused as input. The -r option removes a completion specification for" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1405 +msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1413 +msgid "Display the possible completions depending on the options. Intended" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1414 +msgid "" +"to be used from within a shell function generating possible completions." +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1415 +msgid "If the optional WORD argument is supplied, matches against WORD are" +msgstr "" + +#: /usr/local/build/bash/bash-20031218/builtins/builtins.c:1416 +msgid "generated." +msgstr "" diff --git a/po.orig/en@boldquot.gmo b/po.orig/en@boldquot.gmo new file mode 100644 index 000000000..6a9c77ba2 Binary files /dev/null and b/po.orig/en@boldquot.gmo differ diff --git a/po.orig/en@boldquot.header b/po.orig/en@boldquot.header new file mode 100644 index 000000000..fedb6a06d --- /dev/null +++ b/po.orig/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/po.orig/en@boldquot.po b/po.orig/en@boldquot.po new file mode 100644 index 000000000..652c51b0c --- /dev/null +++ b/po.orig/en@boldquot.po @@ -0,0 +1,4349 @@ +# English translations for GNU bash package. +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the GNU bash package. +# Automatically generated, 2004. +# +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# +#: builtins/caller.def:128 builtins/caller.def:132 builtins/pushd.def:655 +#: builtins/pushd.def:663 builtins/pushd.def:666 builtins/pushd.def:676 +#: builtins/pushd.def:680 builtins/pushd.def:684 builtins/pushd.def:687 +#: builtins/pushd.def:690 builtins/pushd.def:699 builtins/pushd.def:703 +#: builtins/pushd.def:707 builtins/pushd.def:710 builtins.c:321 builtins.c:325 +#: builtins.c:390 builtins.c:392 builtins.c:401 builtins.c:404 builtins.c:408 +#: builtins.c:445 builtins.c:487 builtins.c:491 builtins.c:498 builtins.c:509 +#: builtins.c:513 builtins.c:552 builtins.c:555 builtins.c:559 builtins.c:562 +#: builtins.c:630 builtins.c:637 builtins.c:692 builtins.c:713 builtins.c:718 +#: builtins.c:722 builtins.c:745 builtins.c:835 builtins.c:919 builtins.c:921 +#: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952 +#: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973 +#: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028 +#: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062 +#: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309 +#: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331 +#: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354 +#: builtins.c:1362 builtins.c:1365 +msgid "" +msgstr "" +"Project-Id-Version: GNU bash 3.0-rc1\n" +"POT-Creation-Date: 2003-12-22 15:34-0500\n" +"PO-Revision-Date: 2003-12-22 15:34-0500\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Report-Msgid-Bugs-To: bug-bash@gnu.org\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: arrayfunc.c:45 +msgid "bad array subscript" +msgstr "bad array subscript" + +#: arrayfunc.c:306 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: cannot assign to non-numeric index" + +#: bashhist.c:321 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: cannot create: %s" + +#: bashline.c:2791 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: cannot find keymap for command" + +#: bashline.c:2840 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: first non-whitespace character is not ‘\"’" + +#: 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 "" +msgstr "" + +#: 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 "timed out waiting for input: auto-logout\n" +msgstr "timed 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 " +msgstr "" +"each signal number. Each SIGNAL_SPEC is either a signal name in " + +#: 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" +"[0m’ 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" +"[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 ‘-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 “$@" +"[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 ‘in WORDS’ is not present, ‘in “$@" +"[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 ‘-p’ option" + +#: builtins.c:1153 +msgid "prints the timing summary in a slightly different format. This uses" +msgstr "prints the timing summary in a slightly different format. This uses" + +#: builtins.c:1154 +msgid "the value of the TIMEFORMAT variable as the output format." +msgstr "the value of the TIMEFORMAT variable as the output format." + +#: builtins.c:1160 +msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" +msgstr "Selectively execute COMMANDS based upon WORD matching PATTERN. The" + +#: builtins.c:1161 +msgid "`|' is used to separate multiple patterns." +msgstr "‘|’ is used to separate multiple patterns." + +#: builtins.c:1167 +msgid "" +"The if COMMANDS are executed. If the exit status is zero, then the then" +msgstr "" +"The if COMMANDS are executed. If the exit status is zero, then the then" + +#: builtins.c:1168 +msgid "" +"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +msgstr "" +"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" + +#: builtins.c:1169 +msgid "" +"in turn, and if the exit status is zero, the corresponding then COMMANDS" +msgstr "" +"in turn, and if the exit status is zero, the corresponding then COMMANDS" + +#: builtins.c:1170 +msgid "" +"are executed and the if command completes. Otherwise, the else COMMANDS" +msgstr "" +"are executed and the if command completes. Otherwise, the else COMMANDS" + +#: builtins.c:1171 +msgid "" +"are executed, if present. The exit status is the exit status of the last" +msgstr "" +"are executed, if present. The exit status is the exit status of the last" + +#: builtins.c:1172 +msgid "command executed, or zero if no condition tested true." +msgstr "command executed, or zero if no condition tested true." + +#: builtins.c:1178 builtins.c:1185 +msgid "Expand and execute COMMANDS as long as the final command in the" +msgstr "Expand and execute COMMANDS as long as the final command in the" + +#: builtins.c:1179 +msgid "`while' COMMANDS has an exit status of zero." +msgstr "‘while’ COMMANDS has an exit status of zero." + +#: builtins.c:1186 +msgid "`until' COMMANDS has an exit status which is not zero." +msgstr "‘until’ COMMANDS has an exit status which is not zero." + +#: builtins.c:1192 +msgid "Create a simple command invoked by NAME which runs COMMANDS." +msgstr "Create a simple command invoked by NAME which runs COMMANDS." + +#: builtins.c:1193 +msgid "Arguments on the command line along with NAME are passed to the" +msgstr "Arguments on the command line along with NAME are passed to the" + +#: builtins.c:1194 +msgid "function as $0 .. $n." +msgstr "function as $0 .. $n." + +#: builtins.c:1200 +msgid "Run a set of commands in a group. This is one way to redirect an" +msgstr "Run a set of commands in a group. This is one way to redirect an" + +#: builtins.c:1201 +msgid "entire set of commands." +msgstr "entire set of commands." + +#: builtins.c:1207 +msgid "This is similar to the `fg' command. Resume a stopped or background" +msgstr "" +"This is similar to the ‘fg’ command. Resume a stopped or background" + +#: builtins.c:1208 +msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +msgstr "job. If you specifiy DIGITS, then that job is used. If you specify" + +#: builtins.c:1209 +msgid "WORD, then the job whose name begins with WORD is used. Following the" +msgstr "WORD, then the job whose name begins with WORD is used. Following the" + +#: builtins.c:1210 +msgid "job specification with a `&' places the job in the background." +msgstr "job specification with a ‘&’ places the job in the background." + +#: builtins.c:1216 +msgid "The EXPRESSION is evaluated according to the rules for arithmetic" +msgstr "The EXPRESSION is evaluated according to the rules for arithmetic" + +#: builtins.c:1217 +msgid "evaluation. Equivalent to \"let EXPRESSION\"." +msgstr "evaluation. Equivalent to “let EXPRESSION”." + +#: builtins.c:1223 +msgid "" +"Returns a status of 0 or 1 depending on the evaluation of the conditional" +msgstr "" +"Returns a status of 0 or 1 depending on the evaluation of the conditional" + +#: builtins.c:1224 +msgid "" +"expression EXPRESSION. Expressions are composed of the same primaries used" +msgstr "" +"expression EXPRESSION. Expressions are composed of the same primaries used" + +#: builtins.c:1225 +msgid "" +"by the `test' builtin, and may be combined using the following operators" +msgstr "" +"by the ‘test’ builtin, and may be combined using the following " +"operators" + +#: builtins.c:1227 +msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" +msgstr "\t( EXPRESSION )\tReturns the value of EXPRESSION" + +#: builtins.c:1228 +msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" +msgstr "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" + +#: builtins.c:1229 +msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" +msgstr "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" + +#: builtins.c:1230 +msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" +msgstr "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" + +#: builtins.c:1232 +msgid "" +"When the `==' and `!=' operators are used, the string to the right of the" +msgstr "" +"When the ‘==’ and ‘!=’ operators are used, the string to the " +"right of the" + +#: builtins.c:1233 +msgid "operator is used as a pattern and pattern matching is performed. The" +msgstr "operator is used as a pattern and pattern matching is performed. The" + +#: builtins.c:1234 +msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" +msgstr "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" + +#: builtins.c:1235 +msgid "determine the expression's value." +msgstr "determine the expression's value." + +#: builtins.c:1241 +msgid "BASH_VERSION Version information for this Bash." +msgstr "BASH_VERSION Version information for this Bash." + +#: builtins.c:1242 +msgid "CDPATH A colon separated list of directories to search" +msgstr "CDPATH A colon separated list of directories to search" + +#: builtins.c:1243 +msgid "\t\twhen the argument to `cd' is not found in the current" +msgstr "\t\twhen the argument to ‘cd’ is not found in the current" + +#: builtins.c:1244 +msgid "\t\tdirectory." +msgstr "\t\tdirectory." + +#: builtins.c:1245 +msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" +msgstr "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" + +#: builtins.c:1246 +msgid "\t\tbe ignored by pathname expansion." +msgstr "\t\tbe ignored by pathname expansion." + +#: builtins.c:1248 +msgid "" +"HISTFILE The name of the file where your command history is stored." +msgstr "" +"HISTFILE The name of the file where your command history is stored." + +#: builtins.c:1249 +msgid "HISTFILESIZE The maximum number of lines this file can contain." +msgstr "HISTFILESIZE The maximum number of lines this file can contain." + +#: builtins.c:1250 +msgid "HISTSIZE The maximum number of history lines that a running" +msgstr "HISTSIZE The maximum number of history lines that a running" + +#: builtins.c:1251 +msgid "\t\tshell can access." +msgstr "\t\tshell can access." + +#: builtins.c:1253 +msgid "HOME The complete pathname to your login directory." +msgstr "HOME The complete pathname to your login directory." + +#: builtins.c:1254 +msgid "HOSTNAME\tThe name of the current host." +msgstr "HOSTNAME\tThe name of the current host." + +#: builtins.c:1255 +msgid "HOSTTYPE The type of CPU this version of Bash is running under." +msgstr "HOSTTYPE The type of CPU this version of Bash is running under." + +#: builtins.c:1256 +msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" +msgstr "IGNOREEOF Controls the action of the shell on receipt of an EOF" + +#: builtins.c:1257 +msgid "\t\tcharacter as the sole input. If set, then the value" +msgstr "\t\tcharacter as the sole input. If set, then the value" + +#: builtins.c:1258 +msgid "\t\tof it is the number of EOF characters that can be seen" +msgstr "\t\tof it is the number of EOF characters that can be seen" + +#: builtins.c:1259 +msgid "\t\tin a row on an empty line before the shell will exit" +msgstr "\t\tin a row on an empty line before the shell will exit" + +#: builtins.c:1260 +msgid "\t\t(default 10). When unset, EOF signifies the end of input." +msgstr "\t\t(default 10). When unset, EOF signifies the end of input." + +#: builtins.c:1261 +msgid "MACHTYPE\tA string describing the current system Bash is running on." +msgstr "MACHTYPE\tA string describing the current system Bash is running on." + +#: builtins.c:1262 +msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +msgstr "MAILCHECK\tHow often, in seconds, Bash checks for new mail." + +#: builtins.c:1263 +msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +msgstr "MAILPATH\tA colon-separated list of filenames which Bash checks" + +#: builtins.c:1264 +msgid "\t\tfor new mail." +msgstr "\t\tfor new mail." + +#: builtins.c:1265 +msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +msgstr "OSTYPE\t\tThe version of Unix this version of Bash is running on." + +#: builtins.c:1266 +msgid "PATH A colon-separated list of directories to search when" +msgstr "PATH A colon-separated list of directories to search when" + +#: builtins.c:1267 +msgid "\t\tlooking for commands." +msgstr "\t\tlooking for commands." + +#: builtins.c:1268 +msgid "PROMPT_COMMAND A command to be executed before the printing of each" +msgstr "PROMPT_COMMAND A command to be executed before the printing of each" + +#: builtins.c:1269 +msgid "\t\tprimary prompt." +msgstr "\t\tprimary prompt." + +#: builtins.c:1270 +msgid "PS1 The primary prompt string." +msgstr "PS1 The primary prompt string." + +#: builtins.c:1271 +msgid "PS2 The secondary prompt string." +msgstr "PS2 The secondary prompt string." + +#: builtins.c:1272 +msgid "PWD\t\tThe full pathname of the current directory." +msgstr "PWD\t\tThe full pathname of the current directory." + +#: builtins.c:1273 +msgid "SHELLOPTS\tA colon-separated list of enabled shell options." +msgstr "SHELLOPTS\tA colon-separated list of enabled shell options." + +#: builtins.c:1274 +msgid "TERM The name of the current terminal type." +msgstr "TERM The name of the current terminal type." + +#: builtins.c:1275 +msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" +msgstr "TIMEFORMAT\tThe output format for timing statistics displayed by the" + +#: builtins.c:1276 +msgid "\t\t`time' reserved word." +msgstr "\t\t‘time’ reserved word." + +#: builtins.c:1277 +msgid "auto_resume Non-null means a command word appearing on a line by" +msgstr "auto_resume Non-null means a command word appearing on a line by" + +#: builtins.c:1278 +msgid "\t\titself is first looked for in the list of currently" +msgstr "\t\titself is first looked for in the list of currently" + +#: builtins.c:1279 +msgid "\t\tstopped jobs. If found there, that job is foregrounded." +msgstr "\t\tstopped jobs. If found there, that job is foregrounded." + +#: builtins.c:1280 +msgid "\t\tA value of `exact' means that the command word must" +msgstr "\t\tA value of ‘exact’ means that the command word must" + +#: builtins.c:1281 +msgid "\t\texactly match a command in the list of stopped jobs. A" +msgstr "\t\texactly match a command in the list of stopped jobs. A" + +#: builtins.c:1282 +msgid "\t\tvalue of `substring' means that the command word must" +msgstr "\t\tvalue of ‘substring’ means that the command word must" + +#: builtins.c:1283 +msgid "\t\tmatch a substring of the job. Any other value means that" +msgstr "\t\tmatch a substring of the job. Any other value means that" + +#: builtins.c:1284 +msgid "\t\tthe command must be a prefix of a stopped job." +msgstr "\t\tthe command must be a prefix of a stopped job." + +#: builtins.c:1287 +msgid "histchars Characters controlling history expansion and quick" +msgstr "histchars Characters controlling history expansion and quick" + +#: builtins.c:1288 +msgid "\t\tsubstitution. The first character is the history" +msgstr "\t\tsubstitution. The first character is the history" + +#: builtins.c:1289 +msgid "\t\tsubstitution character, usually `!'. The second is" +msgstr "\t\tsubstitution character, usually ‘!’. The second is" + +#: builtins.c:1290 +msgid "\t\tthe `quick substitution' character, usually `^'. The" +msgstr "\t\tthe ‘quick substitution’ character, usually ‘^’. The" + +#: builtins.c:1291 +msgid "\t\tthird is the `history comment' character, usually `#'." +msgstr "\t\tthird is the ‘history comment’ character, usually ‘#’." + +#: builtins.c:1293 +msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" +msgstr "HISTIGNORE\tA colon-separated list of patterns used to decide which" + +#: builtins.c:1294 +msgid "\t\tcommands should be saved on the history list." +msgstr "\t\tcommands should be saved on the history list." + +#: builtins.c:1306 +msgid "+N\tRotates the stack so that the Nth directory (counting" +msgstr "+N\tRotates the stack so that the Nth directory (counting" + +#: builtins.c:1307 +msgid "\tfrom the left of the list shown by `dirs', starting with" +msgstr "\tfrom the left of the list shown by ‘dirs’, starting with" + +#: builtins.c:1308 builtins.c:1312 +msgid "\tzero) is at the top." +msgstr "\tzero) is at the top." + +#: builtins.c:1310 +msgid "-N\tRotates the stack so that the Nth directory (counting" +msgstr "-N\tRotates the stack so that the Nth directory (counting" + +#: builtins.c:1311 +msgid "\tfrom the right of the list shown by `dirs', starting with" +msgstr "\tfrom the right of the list shown by ‘dirs’, starting with" + +#: builtins.c:1314 +msgid "-n\tsuppress the normal change of directory when adding directories" +msgstr "-n\tsuppress the normal change of directory when adding directories" + +#: builtins.c:1315 +msgid "\tto the stack, so only the stack is manipulated." +msgstr "\tto the stack, so only the stack is manipulated." + +#: builtins.c:1317 +msgid "dir\tadds DIR to the directory stack at the top, making it the" +msgstr "dir\tadds DIR to the directory stack at the top, making it the" + +#: builtins.c:1318 +msgid "\tnew current working directory." +msgstr "\tnew current working directory." + +#: builtins.c:1332 +msgid "+N\tremoves the Nth entry counting from the left of the list" +msgstr "+N\tremoves the Nth entry counting from the left of the list" + +#: builtins.c:1333 +msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" +msgstr "" +"\tshown by ‘dirs’, starting with zero. For example: ‘popd +0’" + +#: builtins.c:1334 +msgid "\tremoves the first directory, `popd +1' the second." +msgstr "\tremoves the first directory, ‘popd +1’ the second." + +#: builtins.c:1336 +msgid "-N\tremoves the Nth entry counting from the right of the list" +msgstr "-N\tremoves the Nth entry counting from the right of the list" + +#: builtins.c:1337 +msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" +msgstr "" +"\tshown by ‘dirs’, starting with zero. For example: ‘popd -0’" + +#: builtins.c:1338 +msgid "\tremoves the last directory, `popd -1' the next to last." +msgstr "\tremoves the last directory, ‘popd -1’ the next to last." + +#: builtins.c:1340 +msgid "-n\tsuppress the normal change of directory when removing directories" +msgstr "-n\tsuppress the normal change of directory when removing directories" + +#: builtins.c:1341 +msgid "\tfrom the stack, so only the stack is manipulated." +msgstr "\tfrom the stack, so only the stack is manipulated." + +#: builtins.c:1363 +msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" +msgstr "+N\tdisplays the Nth entry counting from the left of the list shown by" + +#: builtins.c:1364 builtins.c:1367 +msgid "\tdirs when invoked without options, starting with zero." +msgstr "\tdirs when invoked without options, starting with zero." + +#: builtins.c:1366 +msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" +msgstr "" +"-N\tdisplays the Nth entry counting from the right of the list shown by" + +#: builtins.c:1374 +msgid "Toggle the values of variables controlling optional behavior." +msgstr "Toggle the values of variables controlling optional behavior." + +#: builtins.c:1375 +msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +msgstr "The -s flag means to enable (set) each OPTNAME; the -u flag" + +#: builtins.c:1376 +msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +msgstr "unsets each OPTNAME. The -q flag suppresses output; the exit" + +#: builtins.c:1377 +msgid "status indicates whether each OPTNAME is set or unset. The -o" +msgstr "status indicates whether each OPTNAME is set or unset. The -o" + +#: builtins.c:1378 +msgid "option restricts the OPTNAMEs to those defined for use with" +msgstr "option restricts the OPTNAMEs to those defined for use with" + +#: builtins.c:1379 +msgid "`set -o'. With no options, or with the -p option, a list of all" +msgstr "‘set -o’. With no options, or with the -p option, a list of all" + +#: builtins.c:1380 +msgid "settable options is displayed, with an indication of whether or" +msgstr "settable options is displayed, with an indication of whether or" + +#: builtins.c:1381 +msgid "not each is set." +msgstr "not each is set." + +#: builtins.c:1387 +msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" +msgstr "" +"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" + +#: builtins.c:1388 +msgid "is a character string which contains three types of objects: plain" +msgstr "is a character string which contains three types of objects: plain" + +#: builtins.c:1389 +msgid "" +"characters, which are simply copied to standard output, character escape" +msgstr "" +"characters, which are simply copied to standard output, character escape" + +#: builtins.c:1390 +msgid "sequences which are converted and copied to the standard output, and" +msgstr "sequences which are converted and copied to the standard output, and" + +#: builtins.c:1391 +msgid "" +"format specifications, each of which causes printing of the next successive" +msgstr "" +"format specifications, each of which causes printing of the next successive" + +#: builtins.c:1392 +msgid "argument. In addition to the standard printf(1) formats, %b means to" +msgstr "argument. In addition to the standard printf(1) formats, %b means to" + +#: builtins.c:1393 +msgid "expand backslash escape sequences in the corresponding argument, and %q" +msgstr "" +"expand backslash escape sequences in the corresponding argument, and %q" + +#: builtins.c:1394 +msgid "means to quote the argument in a way that can be reused as shell input." +msgstr "" +"means to quote the argument in a way that can be reused as shell input." + +#: builtins.c:1401 +msgid "For each NAME, specify how arguments are to be completed." +msgstr "For each NAME, specify how arguments are to be completed." + +#: builtins.c:1402 +msgid "If the -p option is supplied, or if no options are supplied, existing" +msgstr "If the -p option is supplied, or if no options are supplied, existing" + +#: builtins.c:1403 +msgid "completion specifications are printed in a way that allows them to be" +msgstr "completion specifications are printed in a way that allows them to be" + +#: builtins.c:1404 +msgid "reused as input. The -r option removes a completion specification for" +msgstr "reused as input. The -r option removes a completion specification for" + +#: builtins.c:1405 +msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." +msgstr "" +"each NAME, or, if no NAMEs are supplied, all completion specifications." + +#: builtins.c:1413 +msgid "Display the possible completions depending on the options. Intended" +msgstr "Display the possible completions depending on the options. Intended" + +#: builtins.c:1414 +msgid "" +"to be used from within a shell function generating possible completions." +msgstr "" +"to be used from within a shell function generating possible completions." + +#: builtins.c:1415 +msgid "If the optional WORD argument is supplied, matches against WORD are" +msgstr "If the optional WORD argument is supplied, matches against WORD are" + +#: builtins.c:1416 +msgid "generated." +msgstr "generated." diff --git a/po.orig/en@quot.gmo b/po.orig/en@quot.gmo new file mode 100644 index 000000000..62cf0807c Binary files /dev/null and b/po.orig/en@quot.gmo differ diff --git a/po.orig/en@quot.header b/po.orig/en@quot.header new file mode 100644 index 000000000..a9647fc35 --- /dev/null +++ b/po.orig/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/po.orig/en@quot.po b/po.orig/en@quot.po new file mode 100644 index 000000000..a560bf6ca --- /dev/null +++ b/po.orig/en@quot.po @@ -0,0 +1,4283 @@ +# English translations for GNU bash package. +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the GNU bash package. +# Automatically generated, 2004. +# +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +#: builtins/caller.def:128 builtins/caller.def:132 builtins/pushd.def:655 +#: builtins/pushd.def:663 builtins/pushd.def:666 builtins/pushd.def:676 +#: builtins/pushd.def:680 builtins/pushd.def:684 builtins/pushd.def:687 +#: builtins/pushd.def:690 builtins/pushd.def:699 builtins/pushd.def:703 +#: builtins/pushd.def:707 builtins/pushd.def:710 builtins.c:321 builtins.c:325 +#: builtins.c:390 builtins.c:392 builtins.c:401 builtins.c:404 builtins.c:408 +#: builtins.c:445 builtins.c:487 builtins.c:491 builtins.c:498 builtins.c:509 +#: builtins.c:513 builtins.c:552 builtins.c:555 builtins.c:559 builtins.c:562 +#: builtins.c:630 builtins.c:637 builtins.c:692 builtins.c:713 builtins.c:718 +#: builtins.c:722 builtins.c:745 builtins.c:835 builtins.c:919 builtins.c:921 +#: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952 +#: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973 +#: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028 +#: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062 +#: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309 +#: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331 +#: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354 +#: builtins.c:1362 builtins.c:1365 +msgid "" +msgstr "" +"Project-Id-Version: GNU bash 3.0-rc1\n" +"POT-Creation-Date: 2003-12-22 15:34-0500\n" +"PO-Revision-Date: 2003-12-22 15:34-0500\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Report-Msgid-Bugs-To: bug-bash@gnu.org\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: arrayfunc.c:45 +msgid "bad array subscript" +msgstr "bad array subscript" + +#: arrayfunc.c:306 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: cannot assign to non-numeric index" + +#: bashhist.c:321 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: cannot create: %s" + +#: bashline.c:2791 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: cannot find keymap for command" + +#: bashline.c:2840 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: first non-whitespace character is not ‘\"’" + +#: bashline.c:2869 +#, c-format +msgid "no closing `%c' in %s" +msgstr "no closing ‘%c’ in %s" + +#: bashline.c:2903 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: missing colon separator" + +#: builtins/alias.def:123 +#, c-format +msgid "`%s': invalid alias name" +msgstr "‘%s’: invalid alias name" + +#: builtins/bind.def:194 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "‘%s’: invalid keymap name" + +#: builtins/bind.def:233 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: cannot read: %s" + +#: builtins/bind.def:248 +#, c-format +msgid "`%s': cannot unbind" +msgstr "‘%s’: cannot unbind" + +#: builtins/bind.def:283 +#, c-format +msgid "`%s': unknown function name" +msgstr "‘%s’: unknown function name" + +#: builtins/bind.def:291 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s is not bound to any keys.\n" + +#: builtins/bind.def:295 +#, c-format +msgid "%s can be invoked via " +msgstr "%s can be invoked via " + +#: builtins/break.def:128 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop" + +#: builtins/caller.def:127 builtins.c:320 +msgid "Returns the context of the current subroutine call." +msgstr "Returns the context of the current subroutine call." + +#: builtins/caller.def:129 builtins.c:322 +msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +msgstr "Without EXPR, returns returns “$line $filename”. With EXPR," + +#: builtins/caller.def:130 builtins.c:323 +msgid "returns \"$line $subroutine $filename\"; this extra information" +msgstr "returns “$line $subroutine $filename”; this extra information" + +#: builtins/caller.def:131 builtins.c:324 +msgid "can be used used to provide a stack trace." +msgstr "can be used used to provide a stack trace." + +#: builtins/caller.def:133 builtins.c:326 +msgid "The value of EXPR indicates how many call frames to go back before the" +msgstr "The value of EXPR indicates how many call frames to go back before the" + +#: builtins/caller.def:134 builtins.c:327 +msgid "current one; the top frame is frame 0." +msgstr "current one; the top frame is frame 0." + +#: builtins/cd.def:188 +msgid "HOME not set" +msgstr "HOME not set" + +#: builtins/cd.def:200 +msgid "OLDPWD not set" +msgstr "OLDPWD not set" + +#: builtins/cd.def:357 +#, c-format +msgid "write error: %s" +msgstr "write error: %s" + +#: builtins/common.c:133 test.c:921 +msgid "too many arguments" +msgstr "too many arguments" + +#: builtins/common.c:157 shell.c:465 shell.c:737 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: option requires an argument" + +#: builtins/common.c:164 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: numeric argument required" + +#: builtins/common.c:171 +#, c-format +msgid "%s: not found" +msgstr "%s: not found" + +#: builtins/common.c:180 shell.c:750 +#, c-format +msgid "%s: invalid option" +msgstr "%s: invalid option" + +#: builtins/common.c:187 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: invalid option name" + +#: builtins/common.c:194 general.c:229 general.c:234 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "‘%s’: not a valid identifier" + +#: builtins/common.c:201 +#, c-format +msgid "%s: invalid number" +msgstr "%s: invalid number" + +#: builtins/common.c:208 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: invalid signal specification" + +#: builtins/common.c:215 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "‘%s’: not a pid or valid job spec" + +#: builtins/common.c:222 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: readonly variable" + +#: builtins/common.c:230 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s out of range" + +#: builtins/common.c:230 builtins/common.c:232 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:232 +#, c-format +msgid "%s out of range" +msgstr "%s out of range" + +#: builtins/common.c:240 +#, c-format +msgid "%s: no such job" +msgstr "%s: no such job" + +#: builtins/common.c:248 +#, c-format +msgid "%s: no job control" +msgstr "%s: no job control" + +#: builtins/common.c:250 +msgid "no job control" +msgstr "no job control" + +#: builtins/common.c:260 +#, c-format +msgid "%s: restricted" +msgstr "%s: restricted" + +#: builtins/common.c:262 +msgid "restricted" +msgstr "restricted" + +#: builtins/common.c:270 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: not a shell builtin" + +#: builtins/common.c:486 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: error retrieving current directory: %s: %s\n" + +#: builtins/common.c:553 builtins/common.c:555 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: ambiguous job spec" + +#: builtins/complete.def:251 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: invalid action name" + +#: builtins/complete.def:381 builtins/complete.def:524 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: no completion specification" + +#: builtins/complete.def:571 +msgid "warning: -F option may not work as you expect" +msgstr "warning: -F option may not work as you expect" + +#: builtins/complete.def:573 +msgid "warning: -C option may not work as you expect" +msgstr "warning: -C option may not work as you expect" + +#: builtins/declare.def:105 +msgid "can only be used in a function" +msgstr "can only be used in a function" + +#: builtins/declare.def:295 +msgid "cannot use `-f' to make functions" +msgstr "cannot use ‘-f’ to make functions" + +#: builtins/declare.def:307 execute_cmd.c:3949 +#, c-format +msgid "%s: readonly function" +msgstr "%s: readonly function" + +#: builtins/declare.def:389 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: cannot destroy array variables in this way" + +#: builtins/enable.def:128 builtins/enable.def:136 +msgid "dynamic loading not available" +msgstr "dynamic loading not available" + +#: builtins/enable.def:303 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "cannot open shared object %s: %s" + +#: builtins/enable.def:326 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "cannot find %s in shared object %s: %s" + +#: builtins/enable.def:450 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: not dynamically loaded" + +#: builtins/enable.def:465 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: cannot delete: %s" + +#: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395 +#, c-format +msgid "%s: is a directory" +msgstr "%s: is a directory" + +#: builtins/evalfile.c:133 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: not a regular file" + +#: builtins/evalfile.c:141 +#, c-format +msgid "%s: file is too large" +msgstr "%s: file is too large" + +#: builtins/exec.def:205 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: cannot execute: %s" + +#: builtins/exit.def:83 +msgid "not login shell: use `exit'" +msgstr "not login shell: use ‘exit’" + +#: builtins/exit.def:111 +msgid "There are stopped jobs.\n" +msgstr "There are stopped jobs.\n" + +#: builtins/fc.def:252 +msgid "no command found" +msgstr "no command found" + +#: builtins/fc.def:317 +msgid "history specification" +msgstr "history specification" + +#: builtins/fc.def:338 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: cannot open temp file: %s" + +#: builtins/fg_bg.def:133 +#, c-format +msgid "job %d started without job control" +msgstr "job %d started without job control" + +#: builtins/getopt.c:109 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: illegal option -- %c\n" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: option requires an argument -- %c\n" + +#: builtins/hash.def:83 +msgid "hashing disabled" +msgstr "hashing disabled" + +#: builtins/hash.def:128 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: hash table empty\n" + +#: builtins/help.def:108 +msgid "Shell commands matching keywords `" +msgstr "Shell commands matching keywords `" + +#: builtins/help.def:110 +msgid "Shell commands matching keyword `" +msgstr "Shell commands matching keyword `" + +#: builtins/help.def:138 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"no help topics match ‘%s’. Try ‘help help’ or ‘man -k %s’ or ‘info %s’." + +#: builtins/help.def:164 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: cannot open: %s" + +#: builtins/help.def:182 +msgid "" +"These shell commands are defined internally. Type `help' to see this list.\n" +"Type `help name' to find out more about the function `name'.\n" +"Use `info bash' to find out more about the shell in general.\n" +"Use `man -k' or `info' to find out more about commands not in this list.\n" +"\n" +"A star (*) next to a name means that the command is disabled.\n" +"\n" +msgstr "" +"These shell commands are defined internally. Type ‘help’ to see this list.\n" +"Type ‘help name’ to find out more about the function ‘name’.\n" +"Use ‘info bash’ to find out more about the shell in general.\n" +"Use ‘man -k’ or ‘info’ to find out more about commands not in this list.\n" +"\n" +"A star (*) next to a name means that the command is disabled.\n" +"\n" + +#: builtins/history.def:148 +msgid "cannot use more than one of -anrw" +msgstr "cannot use more than one of -anrw" + +#: builtins/history.def:180 +msgid "history position" +msgstr "history position" + +#: builtins/history.def:390 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: history expansion failed" + +#: builtins/jobs.def:99 +msgid "no other options allowed with `-x'" +msgstr "no other options allowed with ‘-x’" + +#: builtins/kill.def:187 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: arguments must be process or job IDs" + +#: builtins/kill.def:248 +msgid "Unknown error" +msgstr "Unknown error" + +#: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511 +msgid "expression expected" +msgstr "expression expected" + +#: builtins/printf.def:249 +#, c-format +msgid "`%s': missing format character" +msgstr "‘%s’: missing format character" + +#: builtins/printf.def:408 +#, c-format +msgid "`%c': invalid format character" +msgstr "‘%c’: invalid format character" + +#: builtins/printf.def:601 +msgid "missing hex digit for \\x" +msgstr "missing hex digit for \\x" + +#: builtins/pushd.def:168 +msgid "no other directory" +msgstr "no other directory" + +#: builtins/pushd.def:435 +msgid "" +msgstr "" + +#: 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 "timed out waiting for input: auto-logout\n" +msgstr "timed 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 " +msgstr "" +"each signal number. Each SIGNAL_SPEC is either a signal name in " + +#: builtins.c:1009 +msgid "or a signal number. `trap -l' prints a list of signal names and their" +msgstr "or a signal number. ‘trap -l’ prints a list of signal names and their" + +#: builtins.c:1010 +msgid "corresponding numbers. Note that a signal can be sent to the shell" +msgstr "corresponding numbers. Note that a signal can be sent to the shell" + +#: builtins.c:1011 +msgid "with \"kill -signal $$\"." +msgstr "with “kill -signal $$”." + +#: builtins.c:1017 +msgid "For each NAME, indicate how it would be interpreted if used as a" +msgstr "For each NAME, indicate how it would be interpreted if used as a" + +#: builtins.c:1018 +msgid "command name." +msgstr "command name." + +#: builtins.c:1020 +msgid "If the -t option is used, `type' outputs a single word which is one of" +msgstr "If the -t option is used, ‘type’ outputs a single word which is one of" + +#: builtins.c:1021 +msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +msgstr "‘alias’, ‘keyword’, ‘function’, ‘builtin’, ‘file’ or ‘’, if NAME is an" + +#: builtins.c:1022 +msgid "alias, shell reserved word, shell function, shell builtin, disk file," +msgstr "alias, shell reserved word, shell function, shell builtin, disk file," + +#: builtins.c:1023 +msgid "or unfound, respectively." +msgstr "or unfound, respectively." + +#: builtins.c:1025 +msgid "If the -p flag is used, `type' either returns the name of the disk" +msgstr "If the -p flag is used, ‘type’ either returns the name of the disk" + +#: builtins.c:1026 +msgid "file that would be executed, or nothing if `type -t NAME' would not" +msgstr "file that would be executed, or nothing if ‘type -t NAME’ would not" + +#: builtins.c:1027 +msgid "return `file'." +msgstr "return ‘file’." + +#: builtins.c:1029 +msgid "If the -a flag is used, `type' displays all of the places that contain" +msgstr "If the -a flag is used, ‘type’ displays all of the places that contain" + +#: builtins.c:1030 +msgid "an executable named `file'. This includes aliases, builtins, and" +msgstr "an executable named ‘file’. This includes aliases, builtins, and" + +#: builtins.c:1031 +msgid "functions, if and only if the -p flag is not also used." +msgstr "functions, if and only if the -p flag is not also used." + +#: builtins.c:1033 +msgid "The -f flag suppresses shell function lookup." +msgstr "The -f flag suppresses shell function lookup." + +#: builtins.c:1035 +msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," +msgstr "" +"The -P flag forces a PATH search for each NAME, even if it is an alias," + +#: builtins.c:1036 +msgid "builtin, or function, and returns the name of the disk file that would" +msgstr "builtin, or function, and returns the name of the disk file that would" + +#: builtins.c:1037 +msgid "be executed." +msgstr "be executed." + +#: builtins.c:1044 +msgid "Ulimit provides control over the resources available to processes" +msgstr "Ulimit provides control over the resources available to processes" + +#: builtins.c:1045 +msgid "started by the shell, on systems that allow such control. If an" +msgstr "started by the shell, on systems that allow such control. If an" + +#: builtins.c:1046 +msgid "option is given, it is interpreted as follows:" +msgstr "option is given, it is interpreted as follows:" + +#: builtins.c:1048 +msgid " -S\tuse the `soft' resource limit" +msgstr " -S\tuse the ‘soft’ resource limit" + +#: builtins.c:1049 +msgid " -H\tuse the `hard' resource limit" +msgstr " -H\tuse the ‘hard’ resource limit" + +#: builtins.c:1050 +msgid " -a\tall current limits are reported" +msgstr " -a\tall current limits are reported" + +#: builtins.c:1051 +msgid " -c\tthe maximum size of core files created" +msgstr " -c\tthe maximum size of core files created" + +#: builtins.c:1052 +msgid " -d\tthe maximum size of a process's data segment" +msgstr " -d\tthe maximum size of a process's data segment" + +#: builtins.c:1053 +msgid " -f\tthe maximum size of files created by the shell" +msgstr " -f\tthe maximum size of files created by the shell" + +#: builtins.c:1054 +msgid " -l\tthe maximum size a process may lock into memory" +msgstr " -l\tthe maximum size a process may lock into memory" + +#: builtins.c:1055 +msgid " -m\tthe maximum resident set size" +msgstr " -m\tthe maximum resident set size" + +#: builtins.c:1056 +msgid " -n\tthe maximum number of open file descriptors" +msgstr " -n\tthe maximum number of open file descriptors" + +#: builtins.c:1057 +msgid " -p\tthe pipe buffer size" +msgstr " -p\tthe pipe buffer size" + +#: builtins.c:1058 +msgid " -s\tthe maximum stack size" +msgstr " -s\tthe maximum stack size" + +#: builtins.c:1059 +msgid " -t\tthe maximum amount of cpu time in seconds" +msgstr " -t\tthe maximum amount of cpu time in seconds" + +#: builtins.c:1060 +msgid " -u\tthe maximum number of user processes" +msgstr " -u\tthe maximum number of user processes" + +#: builtins.c:1061 +msgid " -v\tthe size of virtual memory" +msgstr " -v\tthe size of virtual memory" + +#: builtins.c:1063 +msgid "If LIMIT is given, it is the new value of the specified resource;" +msgstr "If LIMIT is given, it is the new value of the specified resource;" + +#: builtins.c:1064 +msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" +msgstr "the special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ stand for" + +#: builtins.c:1065 +msgid "" +"the current soft limit, the current hard limit, and no limit, respectively." +msgstr "" +"the current soft limit, the current hard limit, and no limit, respectively." + +#: builtins.c:1066 +msgid "Otherwise, the current value of the specified resource is printed." +msgstr "Otherwise, the current value of the specified resource is printed." + +#: builtins.c:1067 +msgid "If no option is given, then -f is assumed. Values are in 1024-byte" +msgstr "If no option is given, then -f is assumed. Values are in 1024-byte" + +#: builtins.c:1068 +msgid "increments, except for -t, which is in seconds, -p, which is in" +msgstr "increments, except for -t, which is in seconds, -p, which is in" + +#: builtins.c:1069 +msgid "increments of 512 bytes, and -u, which is an unscaled number of" +msgstr "increments of 512 bytes, and -u, which is an unscaled number of" + +#: builtins.c:1070 +msgid "processes." +msgstr "processes." + +#: builtins.c:1077 +msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" +msgstr "The user file-creation mask is set to MODE. If MODE is omitted, or if" + +#: builtins.c:1078 +msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" +msgstr "‘-S’ is supplied, the current value of the mask is printed. The ‘-S’" + +#: builtins.c:1079 +msgid "option makes the output symbolic; otherwise an octal number is output." +msgstr "option makes the output symbolic; otherwise an octal number is output." + +#: builtins.c:1080 +msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" +msgstr "If ‘-p’ is supplied, and MODE is omitted, the output is in a form" + +#: builtins.c:1081 +msgid "that may be used as input. If MODE begins with a digit, it is" +msgstr "that may be used as input. If MODE begins with a digit, it is" + +#: builtins.c:1082 +msgid "interpreted as an octal number, otherwise it is a symbolic mode string" +msgstr "interpreted as an octal number, otherwise it is a symbolic mode string" + +#: builtins.c:1083 +msgid "like that accepted by chmod(1)." +msgstr "like that accepted by chmod(1)." + +#: builtins.c:1090 builtins.c:1102 +msgid "Wait for the specified process and report its termination status. If" +msgstr "Wait for the specified process and report its termination status. If" + +#: builtins.c:1091 builtins.c:1103 +msgid "N is not given, all currently active child processes are waited for," +msgstr "N is not given, all currently active child processes are waited for," + +#: builtins.c:1092 +msgid "and the return code is zero. N may be a process ID or a job" +msgstr "and the return code is zero. N may be a process ID or a job" + +#: builtins.c:1093 +msgid "specification; if a job spec is given, all processes in the job's" +msgstr "specification; if a job spec is given, all processes in the job's" + +#: builtins.c:1094 +msgid "pipeline are waited for." +msgstr "pipeline are waited for." + +#: builtins.c:1104 +msgid "and the return code is zero. N is a process ID; if it is not given," +msgstr "and the return code is zero. N is a process ID; if it is not given," + +#: builtins.c:1105 +msgid "all child processes of the shell are waited for." +msgstr "all child processes of the shell are waited for." + +#: builtins.c:1112 +msgid "The `for' loop executes a sequence of commands for each member in a" +msgstr "The ‘for’ loop executes a sequence of commands for each member in a" + +#: builtins.c:1113 +msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +msgstr "list of items. If ‘in WORDS ...;’ is not present, then ‘in “$@”’ is" + +#: builtins.c:1114 +msgid "assumed. For each element in WORDS, NAME is set to that element, and" +msgstr "assumed. For each element in WORDS, NAME is set to that element, and" + +#: builtins.c:1115 +msgid "the COMMANDS are executed." +msgstr "the COMMANDS are executed." + +#: builtins.c:1121 +msgid "Equivalent to" +msgstr "Equivalent to" + +#: builtins.c:1122 +msgid "\t(( EXP1 ))" +msgstr "\t(( EXP1 ))" + +#: builtins.c:1123 +msgid "\twhile (( EXP2 )); do" +msgstr "\twhile (( EXP2 )); do" + +#: builtins.c:1124 +msgid "\t\tCOMMANDS" +msgstr "\t\tCOMMANDS" + +#: builtins.c:1125 +msgid "\t\t(( EXP3 ))" +msgstr "\t\t(( EXP3 ))" + +#: builtins.c:1126 +msgid "\tdone" +msgstr "\tdone" + +#: builtins.c:1127 +msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" +msgstr "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" + +#: builtins.c:1128 +msgid "omitted, it behaves as if it evaluates to 1." +msgstr "omitted, it behaves as if it evaluates to 1." + +#: builtins.c:1134 +msgid "The WORDS are expanded, generating a list of words. The" +msgstr "The WORDS are expanded, generating a list of words. The" + +#: builtins.c:1135 +msgid "set of expanded words is printed on the standard error, each" +msgstr "set of expanded words is printed on the standard error, each" + +#: builtins.c:1136 +msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +msgstr "preceded by a number. If ‘in WORDS’ is not present, ‘in “$@”’" + +#: builtins.c:1137 +msgid "is assumed. The PS3 prompt is then displayed and a line read" +msgstr "is assumed. The PS3 prompt is then displayed and a line read" + +#: builtins.c:1138 +msgid "from the standard input. If the line consists of the number" +msgstr "from the standard input. If the line consists of the number" + +#: builtins.c:1139 +msgid "corresponding to one of the displayed words, then NAME is set" +msgstr "corresponding to one of the displayed words, then NAME is set" + +#: builtins.c:1140 +msgid "to that word. If the line is empty, WORDS and the prompt are" +msgstr "to that word. If the line is empty, WORDS and the prompt are" + +#: builtins.c:1141 +msgid "redisplayed. If EOF is read, the command completes. Any other" +msgstr "redisplayed. If EOF is read, the command completes. Any other" + +#: builtins.c:1142 +msgid "value read causes NAME to be set to null. The line read is saved" +msgstr "value read causes NAME to be set to null. The line read is saved" + +#: builtins.c:1143 +msgid "in the variable REPLY. COMMANDS are executed after each selection" +msgstr "in the variable REPLY. COMMANDS are executed after each selection" + +#: builtins.c:1144 +msgid "until a break command is executed." +msgstr "until a break command is executed." + +#: builtins.c:1150 +msgid "Execute PIPELINE and print a summary of the real time, user CPU time," +msgstr "Execute PIPELINE and print a summary of the real time, user CPU time," + +#: builtins.c:1151 +msgid "and system CPU time spent executing PIPELINE when it terminates." +msgstr "and system CPU time spent executing PIPELINE when it terminates." + +#: builtins.c:1152 +msgid "The return status is the return status of PIPELINE. The `-p' option" +msgstr "The return status is the return status of PIPELINE. The ‘-p’ option" + +#: builtins.c:1153 +msgid "prints the timing summary in a slightly different format. This uses" +msgstr "prints the timing summary in a slightly different format. This uses" + +#: builtins.c:1154 +msgid "the value of the TIMEFORMAT variable as the output format." +msgstr "the value of the TIMEFORMAT variable as the output format." + +#: builtins.c:1160 +msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" +msgstr "Selectively execute COMMANDS based upon WORD matching PATTERN. The" + +#: builtins.c:1161 +msgid "`|' is used to separate multiple patterns." +msgstr "‘|’ is used to separate multiple patterns." + +#: builtins.c:1167 +msgid "" +"The if COMMANDS are executed. If the exit status is zero, then the then" +msgstr "" +"The if COMMANDS are executed. If the exit status is zero, then the then" + +#: builtins.c:1168 +msgid "" +"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +msgstr "" +"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" + +#: builtins.c:1169 +msgid "" +"in turn, and if the exit status is zero, the corresponding then COMMANDS" +msgstr "" +"in turn, and if the exit status is zero, the corresponding then COMMANDS" + +#: builtins.c:1170 +msgid "" +"are executed and the if command completes. Otherwise, the else COMMANDS" +msgstr "" +"are executed and the if command completes. Otherwise, the else COMMANDS" + +#: builtins.c:1171 +msgid "" +"are executed, if present. The exit status is the exit status of the last" +msgstr "" +"are executed, if present. The exit status is the exit status of the last" + +#: builtins.c:1172 +msgid "command executed, or zero if no condition tested true." +msgstr "command executed, or zero if no condition tested true." + +#: builtins.c:1178 builtins.c:1185 +msgid "Expand and execute COMMANDS as long as the final command in the" +msgstr "Expand and execute COMMANDS as long as the final command in the" + +#: builtins.c:1179 +msgid "`while' COMMANDS has an exit status of zero." +msgstr "‘while’ COMMANDS has an exit status of zero." + +#: builtins.c:1186 +msgid "`until' COMMANDS has an exit status which is not zero." +msgstr "‘until’ COMMANDS has an exit status which is not zero." + +#: builtins.c:1192 +msgid "Create a simple command invoked by NAME which runs COMMANDS." +msgstr "Create a simple command invoked by NAME which runs COMMANDS." + +#: builtins.c:1193 +msgid "Arguments on the command line along with NAME are passed to the" +msgstr "Arguments on the command line along with NAME are passed to the" + +#: builtins.c:1194 +msgid "function as $0 .. $n." +msgstr "function as $0 .. $n." + +#: builtins.c:1200 +msgid "Run a set of commands in a group. This is one way to redirect an" +msgstr "Run a set of commands in a group. This is one way to redirect an" + +#: builtins.c:1201 +msgid "entire set of commands." +msgstr "entire set of commands." + +#: builtins.c:1207 +msgid "This is similar to the `fg' command. Resume a stopped or background" +msgstr "This is similar to the ‘fg’ command. Resume a stopped or background" + +#: builtins.c:1208 +msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +msgstr "job. If you specifiy DIGITS, then that job is used. If you specify" + +#: builtins.c:1209 +msgid "WORD, then the job whose name begins with WORD is used. Following the" +msgstr "WORD, then the job whose name begins with WORD is used. Following the" + +#: builtins.c:1210 +msgid "job specification with a `&' places the job in the background." +msgstr "job specification with a ‘&’ places the job in the background." + +#: builtins.c:1216 +msgid "The EXPRESSION is evaluated according to the rules for arithmetic" +msgstr "The EXPRESSION is evaluated according to the rules for arithmetic" + +#: builtins.c:1217 +msgid "evaluation. Equivalent to \"let EXPRESSION\"." +msgstr "evaluation. Equivalent to “let EXPRESSION”." + +#: builtins.c:1223 +msgid "" +"Returns a status of 0 or 1 depending on the evaluation of the conditional" +msgstr "" +"Returns a status of 0 or 1 depending on the evaluation of the conditional" + +#: builtins.c:1224 +msgid "" +"expression EXPRESSION. Expressions are composed of the same primaries used" +msgstr "" +"expression EXPRESSION. Expressions are composed of the same primaries used" + +#: builtins.c:1225 +msgid "" +"by the `test' builtin, and may be combined using the following operators" +msgstr "" +"by the ‘test’ builtin, and may be combined using the following operators" + +#: builtins.c:1227 +msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" +msgstr "\t( EXPRESSION )\tReturns the value of EXPRESSION" + +#: builtins.c:1228 +msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" +msgstr "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" + +#: builtins.c:1229 +msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" +msgstr "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" + +#: builtins.c:1230 +msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" +msgstr "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" + +#: builtins.c:1232 +msgid "" +"When the `==' and `!=' operators are used, the string to the right of the" +msgstr "" +"When the ‘==’ and ‘!=’ operators are used, the string to the right of the" + +#: builtins.c:1233 +msgid "operator is used as a pattern and pattern matching is performed. The" +msgstr "operator is used as a pattern and pattern matching is performed. The" + +#: builtins.c:1234 +msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" +msgstr "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" + +#: builtins.c:1235 +msgid "determine the expression's value." +msgstr "determine the expression's value." + +#: builtins.c:1241 +msgid "BASH_VERSION Version information for this Bash." +msgstr "BASH_VERSION Version information for this Bash." + +#: builtins.c:1242 +msgid "CDPATH A colon separated list of directories to search" +msgstr "CDPATH A colon separated list of directories to search" + +#: builtins.c:1243 +msgid "\t\twhen the argument to `cd' is not found in the current" +msgstr "\t\twhen the argument to ‘cd’ is not found in the current" + +#: builtins.c:1244 +msgid "\t\tdirectory." +msgstr "\t\tdirectory." + +#: builtins.c:1245 +msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" +msgstr "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" + +#: builtins.c:1246 +msgid "\t\tbe ignored by pathname expansion." +msgstr "\t\tbe ignored by pathname expansion." + +#: builtins.c:1248 +msgid "" +"HISTFILE The name of the file where your command history is stored." +msgstr "" +"HISTFILE The name of the file where your command history is stored." + +#: builtins.c:1249 +msgid "HISTFILESIZE The maximum number of lines this file can contain." +msgstr "HISTFILESIZE The maximum number of lines this file can contain." + +#: builtins.c:1250 +msgid "HISTSIZE The maximum number of history lines that a running" +msgstr "HISTSIZE The maximum number of history lines that a running" + +#: builtins.c:1251 +msgid "\t\tshell can access." +msgstr "\t\tshell can access." + +#: builtins.c:1253 +msgid "HOME The complete pathname to your login directory." +msgstr "HOME The complete pathname to your login directory." + +#: builtins.c:1254 +msgid "HOSTNAME\tThe name of the current host." +msgstr "HOSTNAME\tThe name of the current host." + +#: builtins.c:1255 +msgid "HOSTTYPE The type of CPU this version of Bash is running under." +msgstr "HOSTTYPE The type of CPU this version of Bash is running under." + +#: builtins.c:1256 +msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" +msgstr "IGNOREEOF Controls the action of the shell on receipt of an EOF" + +#: builtins.c:1257 +msgid "\t\tcharacter as the sole input. If set, then the value" +msgstr "\t\tcharacter as the sole input. If set, then the value" + +#: builtins.c:1258 +msgid "\t\tof it is the number of EOF characters that can be seen" +msgstr "\t\tof it is the number of EOF characters that can be seen" + +#: builtins.c:1259 +msgid "\t\tin a row on an empty line before the shell will exit" +msgstr "\t\tin a row on an empty line before the shell will exit" + +#: builtins.c:1260 +msgid "\t\t(default 10). When unset, EOF signifies the end of input." +msgstr "\t\t(default 10). When unset, EOF signifies the end of input." + +#: builtins.c:1261 +msgid "MACHTYPE\tA string describing the current system Bash is running on." +msgstr "MACHTYPE\tA string describing the current system Bash is running on." + +#: builtins.c:1262 +msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +msgstr "MAILCHECK\tHow often, in seconds, Bash checks for new mail." + +#: builtins.c:1263 +msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +msgstr "MAILPATH\tA colon-separated list of filenames which Bash checks" + +#: builtins.c:1264 +msgid "\t\tfor new mail." +msgstr "\t\tfor new mail." + +#: builtins.c:1265 +msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +msgstr "OSTYPE\t\tThe version of Unix this version of Bash is running on." + +#: builtins.c:1266 +msgid "PATH A colon-separated list of directories to search when" +msgstr "PATH A colon-separated list of directories to search when" + +#: builtins.c:1267 +msgid "\t\tlooking for commands." +msgstr "\t\tlooking for commands." + +#: builtins.c:1268 +msgid "PROMPT_COMMAND A command to be executed before the printing of each" +msgstr "PROMPT_COMMAND A command to be executed before the printing of each" + +#: builtins.c:1269 +msgid "\t\tprimary prompt." +msgstr "\t\tprimary prompt." + +#: builtins.c:1270 +msgid "PS1 The primary prompt string." +msgstr "PS1 The primary prompt string." + +#: builtins.c:1271 +msgid "PS2 The secondary prompt string." +msgstr "PS2 The secondary prompt string." + +#: builtins.c:1272 +msgid "PWD\t\tThe full pathname of the current directory." +msgstr "PWD\t\tThe full pathname of the current directory." + +#: builtins.c:1273 +msgid "SHELLOPTS\tA colon-separated list of enabled shell options." +msgstr "SHELLOPTS\tA colon-separated list of enabled shell options." + +#: builtins.c:1274 +msgid "TERM The name of the current terminal type." +msgstr "TERM The name of the current terminal type." + +#: builtins.c:1275 +msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" +msgstr "TIMEFORMAT\tThe output format for timing statistics displayed by the" + +#: builtins.c:1276 +msgid "\t\t`time' reserved word." +msgstr "\t\t‘time’ reserved word." + +#: builtins.c:1277 +msgid "auto_resume Non-null means a command word appearing on a line by" +msgstr "auto_resume Non-null means a command word appearing on a line by" + +#: builtins.c:1278 +msgid "\t\titself is first looked for in the list of currently" +msgstr "\t\titself is first looked for in the list of currently" + +#: builtins.c:1279 +msgid "\t\tstopped jobs. If found there, that job is foregrounded." +msgstr "\t\tstopped jobs. If found there, that job is foregrounded." + +#: builtins.c:1280 +msgid "\t\tA value of `exact' means that the command word must" +msgstr "\t\tA value of ‘exact’ means that the command word must" + +#: builtins.c:1281 +msgid "\t\texactly match a command in the list of stopped jobs. A" +msgstr "\t\texactly match a command in the list of stopped jobs. A" + +#: builtins.c:1282 +msgid "\t\tvalue of `substring' means that the command word must" +msgstr "\t\tvalue of ‘substring’ means that the command word must" + +#: builtins.c:1283 +msgid "\t\tmatch a substring of the job. Any other value means that" +msgstr "\t\tmatch a substring of the job. Any other value means that" + +#: builtins.c:1284 +msgid "\t\tthe command must be a prefix of a stopped job." +msgstr "\t\tthe command must be a prefix of a stopped job." + +#: builtins.c:1287 +msgid "histchars Characters controlling history expansion and quick" +msgstr "histchars Characters controlling history expansion and quick" + +#: builtins.c:1288 +msgid "\t\tsubstitution. The first character is the history" +msgstr "\t\tsubstitution. The first character is the history" + +#: builtins.c:1289 +msgid "\t\tsubstitution character, usually `!'. The second is" +msgstr "\t\tsubstitution character, usually ‘!’. The second is" + +#: builtins.c:1290 +msgid "\t\tthe `quick substitution' character, usually `^'. The" +msgstr "\t\tthe ‘quick substitution’ character, usually ‘^’. The" + +#: builtins.c:1291 +msgid "\t\tthird is the `history comment' character, usually `#'." +msgstr "\t\tthird is the ‘history comment’ character, usually ‘#’." + +#: builtins.c:1293 +msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" +msgstr "HISTIGNORE\tA colon-separated list of patterns used to decide which" + +#: builtins.c:1294 +msgid "\t\tcommands should be saved on the history list." +msgstr "\t\tcommands should be saved on the history list." + +#: builtins.c:1306 +msgid "+N\tRotates the stack so that the Nth directory (counting" +msgstr "+N\tRotates the stack so that the Nth directory (counting" + +#: builtins.c:1307 +msgid "\tfrom the left of the list shown by `dirs', starting with" +msgstr "\tfrom the left of the list shown by ‘dirs’, starting with" + +#: builtins.c:1308 builtins.c:1312 +msgid "\tzero) is at the top." +msgstr "\tzero) is at the top." + +#: builtins.c:1310 +msgid "-N\tRotates the stack so that the Nth directory (counting" +msgstr "-N\tRotates the stack so that the Nth directory (counting" + +#: builtins.c:1311 +msgid "\tfrom the right of the list shown by `dirs', starting with" +msgstr "\tfrom the right of the list shown by ‘dirs’, starting with" + +#: builtins.c:1314 +msgid "-n\tsuppress the normal change of directory when adding directories" +msgstr "-n\tsuppress the normal change of directory when adding directories" + +#: builtins.c:1315 +msgid "\tto the stack, so only the stack is manipulated." +msgstr "\tto the stack, so only the stack is manipulated." + +#: builtins.c:1317 +msgid "dir\tadds DIR to the directory stack at the top, making it the" +msgstr "dir\tadds DIR to the directory stack at the top, making it the" + +#: builtins.c:1318 +msgid "\tnew current working directory." +msgstr "\tnew current working directory." + +#: builtins.c:1332 +msgid "+N\tremoves the Nth entry counting from the left of the list" +msgstr "+N\tremoves the Nth entry counting from the left of the list" + +#: builtins.c:1333 +msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" +msgstr "\tshown by ‘dirs’, starting with zero. For example: ‘popd +0’" + +#: builtins.c:1334 +msgid "\tremoves the first directory, `popd +1' the second." +msgstr "\tremoves the first directory, ‘popd +1’ the second." + +#: builtins.c:1336 +msgid "-N\tremoves the Nth entry counting from the right of the list" +msgstr "-N\tremoves the Nth entry counting from the right of the list" + +#: builtins.c:1337 +msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" +msgstr "\tshown by ‘dirs’, starting with zero. For example: ‘popd -0’" + +#: builtins.c:1338 +msgid "\tremoves the last directory, `popd -1' the next to last." +msgstr "\tremoves the last directory, ‘popd -1’ the next to last." + +#: builtins.c:1340 +msgid "-n\tsuppress the normal change of directory when removing directories" +msgstr "-n\tsuppress the normal change of directory when removing directories" + +#: builtins.c:1341 +msgid "\tfrom the stack, so only the stack is manipulated." +msgstr "\tfrom the stack, so only the stack is manipulated." + +#: builtins.c:1363 +msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" +msgstr "+N\tdisplays the Nth entry counting from the left of the list shown by" + +#: builtins.c:1364 builtins.c:1367 +msgid "\tdirs when invoked without options, starting with zero." +msgstr "\tdirs when invoked without options, starting with zero." + +#: builtins.c:1366 +msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" +msgstr "" +"-N\tdisplays the Nth entry counting from the right of the list shown by" + +#: builtins.c:1374 +msgid "Toggle the values of variables controlling optional behavior." +msgstr "Toggle the values of variables controlling optional behavior." + +#: builtins.c:1375 +msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +msgstr "The -s flag means to enable (set) each OPTNAME; the -u flag" + +#: builtins.c:1376 +msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +msgstr "unsets each OPTNAME. The -q flag suppresses output; the exit" + +#: builtins.c:1377 +msgid "status indicates whether each OPTNAME is set or unset. The -o" +msgstr "status indicates whether each OPTNAME is set or unset. The -o" + +#: builtins.c:1378 +msgid "option restricts the OPTNAMEs to those defined for use with" +msgstr "option restricts the OPTNAMEs to those defined for use with" + +#: builtins.c:1379 +msgid "`set -o'. With no options, or with the -p option, a list of all" +msgstr "‘set -o’. With no options, or with the -p option, a list of all" + +#: builtins.c:1380 +msgid "settable options is displayed, with an indication of whether or" +msgstr "settable options is displayed, with an indication of whether or" + +#: builtins.c:1381 +msgid "not each is set." +msgstr "not each is set." + +#: builtins.c:1387 +msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" +msgstr "" +"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" + +#: builtins.c:1388 +msgid "is a character string which contains three types of objects: plain" +msgstr "is a character string which contains three types of objects: plain" + +#: builtins.c:1389 +msgid "" +"characters, which are simply copied to standard output, character escape" +msgstr "" +"characters, which are simply copied to standard output, character escape" + +#: builtins.c:1390 +msgid "sequences which are converted and copied to the standard output, and" +msgstr "sequences which are converted and copied to the standard output, and" + +#: builtins.c:1391 +msgid "" +"format specifications, each of which causes printing of the next successive" +msgstr "" +"format specifications, each of which causes printing of the next successive" + +#: builtins.c:1392 +msgid "argument. In addition to the standard printf(1) formats, %b means to" +msgstr "argument. In addition to the standard printf(1) formats, %b means to" + +#: builtins.c:1393 +msgid "expand backslash escape sequences in the corresponding argument, and %q" +msgstr "" +"expand backslash escape sequences in the corresponding argument, and %q" + +#: builtins.c:1394 +msgid "means to quote the argument in a way that can be reused as shell input." +msgstr "" +"means to quote the argument in a way that can be reused as shell input." + +#: builtins.c:1401 +msgid "For each NAME, specify how arguments are to be completed." +msgstr "For each NAME, specify how arguments are to be completed." + +#: builtins.c:1402 +msgid "If the -p option is supplied, or if no options are supplied, existing" +msgstr "If the -p option is supplied, or if no options are supplied, existing" + +#: builtins.c:1403 +msgid "completion specifications are printed in a way that allows them to be" +msgstr "completion specifications are printed in a way that allows them to be" + +#: builtins.c:1404 +msgid "reused as input. The -r option removes a completion specification for" +msgstr "reused as input. The -r option removes a completion specification for" + +#: builtins.c:1405 +msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." +msgstr "" +"each NAME, or, if no NAMEs are supplied, all completion specifications." + +#: builtins.c:1413 +msgid "Display the possible completions depending on the options. Intended" +msgstr "Display the possible completions depending on the options. Intended" + +#: builtins.c:1414 +msgid "" +"to be used from within a shell function generating possible completions." +msgstr "" +"to be used from within a shell function generating possible completions." + +#: builtins.c:1415 +msgid "If the optional WORD argument is supplied, matches against WORD are" +msgstr "If the optional WORD argument is supplied, matches against WORD are" + +#: builtins.c:1416 +msgid "generated." +msgstr "generated." diff --git a/po.orig/insert-header.sin b/po.orig/insert-header.sin new file mode 100644 index 000000000..b26de01f6 --- /dev/null +++ b/po.orig/insert-header.sin @@ -0,0 +1,23 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po.orig/quot.sed b/po.orig/quot.sed new file mode 100644 index 000000000..0122c4631 --- /dev/null +++ b/po.orig/quot.sed @@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g diff --git a/po.orig/readline.po b/po.orig/readline.po new file mode 100644 index 000000000..3519812af --- /dev/null +++ b/po.orig/readline.po @@ -0,0 +1,133 @@ +#: lib/readline/bind.c:878 +#, c-format +msgid "readline: %s: line %d: %s\n" +msgstr "" + +#: lib/readline/bind.c:881 +#, c-format +msgid "readline: %s\n" +msgstr "" + +#: lib/readline/bind.c:994 +msgid "$else found without matching $if" +msgstr "" + +#: lib/readline/bind.c:1024 +msgid "$endif without matching $if" +msgstr "" + +#: lib/readline/bind.c:1101 +msgid "unknown parser directive" +msgstr "" + +#: lib/readline/bind.c:1162 +msgid "no closing `\"' in key binding" +msgstr "" + +#: lib/readline/bind.c:1977 +#, c-format +msgid "# %s (not bound)\n" +msgstr "" + +#: lib/readline/bind.c:1995 +#, c-format +msgid "%s is not bound to any keys\n" +msgstr "" + +#: lib/readline/bind.c:2001 +#, c-format +msgid "%s can be found on " +msgstr "" + +#: lib/readline/bind.c:2128 +#, c-format +msgid "%s is set to `%s'\n" +msgstr "" + +#: lib/readline/bind.c:2146 +#, c-format +msgid "bell-style is set to `%s'\n" +msgstr "" + +#: lib/readline/bind.c:2152 +#, c-format +msgid "comment-begin is set to `%s'\n" +msgstr "" + +#: lib/readline/bind.c:2158 +#, c-format +msgid "completion-query-items is set to `%d'\n" +msgstr "" + +#: lib/readline/bind.c:2164 +#, c-format +msgid "editing-mode is set to `%s'\n" +msgstr "" + +#: lib/readline/bind.c:2176 +#, c-format +msgid "isearch-terminators is set to \"%s\"\n" +msgstr "" + +#: lib/readline/bind.c:2188 +#, c-format +msgid "keymap is set to `%s'\n" +msgstr "" + +#: lib/readline/callback.c:105 +msgid "readline: readline_callback_read_char() called with no handler!\r\n" +msgstr "" + +#: lib/readline/complete.c:1342 +#, c-format +msgid "Display all %d possibilities? (y or n)" +msgstr "" + +#: lib/readline/complete.c:1681 +#, c-format +msgid "" +"\r\n" +"readline: bad value %d for what_to_do in rl_complete\n" +msgstr "" + +#: lib/readline/display.c:1924 +#, c-format +msgid "readline: debug: insert_some_chars: count (%d) != col (%d)\n" +msgstr "" + +#: lib/readline/histexpand.c:377 +msgid "event not found" +msgstr "" + +#: lib/readline/histexpand.c:381 +msgid "bad word specifier" +msgstr "" + +#: lib/readline/histexpand.c:385 +msgid "substitution failed" +msgstr "" + +#: lib/readline/histexpand.c:389 +msgid "unrecognized history modifier" +msgstr "" + +#: lib/readline/histexpand.c:393 +msgid "no previous substitution" +msgstr "" + +#: lib/readline/histexpand.c:397 +msgid "unknown expansion error" +msgstr "" + +#: lib/readline/rltty.c:464 +#, c-format +msgid "readline: warning: %s\n" +msgstr "" + +#: lib/readline/rltty.c:475 +msgid "turning on OPOST for terminal\r" +msgstr "" + +#: lib/readline/rltty.c:501 +msgid "turning off output flushing" +msgstr "" diff --git a/po.orig/remove-potcdate.sin b/po.orig/remove-potcdate.sin new file mode 100644 index 000000000..2436c49e7 --- /dev/null +++ b/po.orig/remove-potcdate.sin @@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po.tar b/po.tar new file mode 100644 index 000000000..d259db57a Binary files /dev/null and b/po.tar differ diff --git a/po/bash.pot b/po/bash.pot index 3340d22cc..d195ab73d 100644 --- a/po/bash.pot +++ b/po/bash.pot @@ -15,18 +15,18 @@ #: 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 \n" "Language-Team: LANGUAGE \n" @@ -43,35 +43,30 @@ msgstr "" msgid "%s: cannot assign to non-numeric index" msgstr "" -#: bashhist.c:321 +#: bashhist.c:322 #, c-format msgid "%s: cannot create: %s" msgstr "" -#: bashline.c:2791 +#: bashline.c:2916 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:2840 +#: bashline.c:2965 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:2869 +#: bashline.c:2994 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:2903 +#: bashline.c:3028 #, c-format msgid "%s: missing colon separator" msgstr "" -#: builtins/alias.def:123 -#, c-format -msgid "`%s': invalid alias name" -msgstr "" - #: builtins/bind.def:194 #, c-format msgid "`%s': invalid keymap name" @@ -130,19 +125,14 @@ msgstr "" msgid "current one; the top frame is frame 0." msgstr "" -#: builtins/cd.def:188 +#: builtins/cd.def:190 msgid "HOME not set" msgstr "" -#: builtins/cd.def:200 +#: builtins/cd.def:202 msgid "OLDPWD not set" msgstr "" -#: builtins/cd.def:357 -#, c-format -msgid "write error: %s" -msgstr "" - #: builtins/common.c:133 test.c:921 msgid "too many arguments" msgstr "" @@ -172,7 +162,7 @@ msgstr "" msgid "%s: invalid option name" msgstr "" -#: builtins/common.c:194 general.c:229 general.c:234 +#: builtins/common.c:194 general.c:231 general.c:236 #, c-format msgid "`%s': not a valid identifier" msgstr "" @@ -239,12 +229,17 @@ msgstr "" msgid "%s: not a shell builtin" msgstr "" -#: builtins/common.c:486 +#: builtins/common.c:276 +#, c-format +msgid "write error: %s" +msgstr "" + +#: builtins/common.c:484 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "" -#: builtins/common.c:553 builtins/common.c:555 +#: builtins/common.c:548 builtins/common.c:550 #, c-format msgid "%s: ambiguous job spec" msgstr "" @@ -275,7 +270,7 @@ msgstr "" msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:307 execute_cmd.c:3949 +#: builtins/declare.def:307 execute_cmd.c:3969 #, c-format msgid "%s: readonly function" msgstr "" @@ -309,17 +304,17 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "" -#: builtins/evalfile.c:128 execute_cmd.c:3821 shell.c:1395 +#: builtins/evalfile.c:129 execute_cmd.c:3841 shell.c:1396 #, c-format msgid "%s: is a directory" msgstr "" -#: builtins/evalfile.c:133 +#: builtins/evalfile.c:134 #, c-format msgid "%s: not a regular file" msgstr "" -#: builtins/evalfile.c:141 +#: builtins/evalfile.c:142 #, c-format msgid "%s: file is too large" msgstr "" @@ -337,20 +332,20 @@ msgstr "" msgid "There are stopped jobs.\n" msgstr "" -#: builtins/fc.def:252 +#: builtins/fc.def:254 msgid "no command found" msgstr "" -#: builtins/fc.def:317 +#: builtins/fc.def:319 msgid "history specification" msgstr "" -#: builtins/fc.def:338 +#: builtins/fc.def:340 #, c-format msgid "%s: cannot open temp file: %s" msgstr "" -#: builtins/fg_bg.def:133 +#: builtins/fg_bg.def:145 #, c-format msgid "job %d started without job control" msgstr "" @@ -430,7 +425,7 @@ msgstr "" msgid "Unknown error" msgstr "" -#: builtins/let.def:94 builtins/let.def:119 expr.c:496 expr.c:511 +#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512 msgid "expression expected" msgstr "" @@ -439,12 +434,12 @@ msgstr "" msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:408 +#: builtins/printf.def:423 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:601 +#: builtins/printf.def:629 msgid "missing hex digit for \\x" msgstr "" @@ -456,43 +451,43 @@ msgstr "" msgid "" msgstr "" -#: builtins/pushd.def:652 builtins.c:1351 +#: builtins/pushd.def:652 builtins.c:1350 msgid "Display the list of currently remembered directories. Directories" msgstr "" -#: builtins/pushd.def:653 builtins.c:1352 +#: builtins/pushd.def:653 builtins.c:1351 msgid "find their way onto the list with the `pushd' command; you can get" msgstr "" -#: builtins/pushd.def:654 builtins.c:1353 +#: builtins/pushd.def:654 builtins.c:1352 msgid "back up through the list with the `popd' command." msgstr "" -#: builtins/pushd.def:656 builtins.c:1355 +#: builtins/pushd.def:656 builtins.c:1354 msgid "The -l flag specifies that `dirs' should not print shorthand versions" msgstr "" -#: builtins/pushd.def:657 builtins.c:1356 +#: builtins/pushd.def:657 builtins.c:1355 msgid "of directories which are relative to your home directory. This means" msgstr "" -#: builtins/pushd.def:658 builtins.c:1357 +#: builtins/pushd.def:658 builtins.c:1356 msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" msgstr "" -#: builtins/pushd.def:659 builtins.c:1358 +#: builtins/pushd.def:659 builtins.c:1357 msgid "causes `dirs' to print the directory stack with one entry per line," msgstr "" -#: builtins/pushd.def:660 builtins.c:1359 +#: builtins/pushd.def:660 builtins.c:1358 msgid "prepending the directory name with its position in the stack. The -p" msgstr "" -#: builtins/pushd.def:661 builtins.c:1360 +#: builtins/pushd.def:661 builtins.c:1359 msgid "flag does the same thing, but the stack position is not prepended." msgstr "" -#: builtins/pushd.def:662 builtins.c:1361 +#: builtins/pushd.def:662 builtins.c:1360 msgid "The -c flag clears the directory stack by deleting all of the elements." msgstr "" @@ -509,15 +504,15 @@ msgid "" "-N displays the Nth entry counting from the right of the list shown by" msgstr "" -#: builtins/pushd.def:673 builtins.c:1302 +#: builtins/pushd.def:673 builtins.c:1301 msgid "Adds a directory to the top of the directory stack, or rotates" msgstr "" -#: builtins/pushd.def:674 builtins.c:1303 +#: builtins/pushd.def:674 builtins.c:1302 msgid "the stack, making the new top of the stack the current working" msgstr "" -#: builtins/pushd.def:675 builtins.c:1304 +#: builtins/pushd.def:675 builtins.c:1303 msgid "directory. With no arguments, exchanges the top two directories." msgstr "" @@ -557,20 +552,20 @@ msgstr "" msgid " new current working directory." msgstr "" -#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1320 -#: builtins.c:1343 +#: builtins/pushd.def:691 builtins/pushd.def:711 builtins.c:1319 +#: builtins.c:1342 msgid "You can see the directory stack with the `dirs' command." msgstr "" -#: builtins/pushd.def:696 builtins.c:1328 +#: builtins/pushd.def:696 builtins.c:1327 msgid "Removes entries from the directory stack. With no arguments," msgstr "" -#: builtins/pushd.def:697 builtins.c:1329 +#: builtins/pushd.def:697 builtins.c:1328 msgid "removes the top directory from the stack, and cd's to the new" msgstr "" -#: builtins/pushd.def:698 builtins.c:1330 +#: builtins/pushd.def:698 builtins.c:1329 msgid "top directory." msgstr "" @@ -684,32 +679,32 @@ msgstr "" msgid "cannot suspend a login shell" msgstr "" -#: builtins/type.def:231 +#: builtins/type.def:232 #, c-format msgid "%s is aliased to `%s'\n" msgstr "" -#: builtins/type.def:252 +#: builtins/type.def:253 #, c-format msgid "%s is a shell keyword\n" msgstr "" -#: builtins/type.def:272 +#: builtins/type.def:273 #, c-format msgid "%s is a function\n" msgstr "" -#: builtins/type.def:297 +#: builtins/type.def:298 #, c-format msgid "%s is a shell builtin\n" msgstr "" -#: builtins/type.def:318 +#: builtins/type.def:319 #, c-format msgid "%s is %s\n" msgstr "" -#: builtins/type.def:338 +#: builtins/type.def:339 #, c-format msgid "%s is hashed (%s)\n" msgstr "" @@ -743,7 +738,7 @@ msgstr "" msgid "`%c': invalid symbolic mode operator" msgstr "" -#: builtins/umask.def:279 +#: builtins/umask.def:281 #, c-format msgid "`%c': invalid symbolic mode character" msgstr "" @@ -787,98 +782,98 @@ msgstr "" msgid "timed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:466 +#: execute_cmd.c:467 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1036 +#: execute_cmd.c:1037 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:3521 +#: execute_cmd.c:3541 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:3609 +#: execute_cmd.c:3629 #, c-format msgid "%s: command not found" msgstr "" -#: execute_cmd.c:3839 +#: execute_cmd.c:3859 #, c-format msgid "%s: %s: bad interpreter" msgstr "" -#: execute_cmd.c:3876 +#: execute_cmd.c:3896 #, c-format msgid "%s: cannot execute binary file" msgstr "" -#: execute_cmd.c:3988 +#: execute_cmd.c:4008 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "" -#: expr.c:239 +#: expr.c:240 msgid "expression recursion level exceeded" msgstr "" -#: expr.c:263 +#: expr.c:264 msgid "recursion stack underflow" msgstr "" -#: expr.c:374 +#: expr.c:375 msgid "syntax error in expression" msgstr "" -#: expr.c:414 +#: expr.c:415 msgid "attempted assignment to non-variable" msgstr "" -#: expr.c:435 expr.c:440 expr.c:750 +#: expr.c:436 expr.c:441 expr.c:751 msgid "division by 0" msgstr "" -#: expr.c:466 +#: expr.c:467 msgid "bug: bad expassign token" msgstr "" -#: expr.c:508 +#: expr.c:509 msgid "`:' expected for conditional expression" msgstr "" -#: expr.c:775 +#: expr.c:776 msgid "exponent less than 0" msgstr "" -#: expr.c:819 +#: expr.c:821 msgid "identifier expected after pre-increment or pre-decrement" msgstr "" -#: expr.c:847 +#: expr.c:849 msgid "missing `)'" msgstr "" -#: expr.c:871 +#: expr.c:892 msgid "syntax error: operand expected" msgstr "" -#: expr.c:1146 +#: expr.c:1178 msgid "invalid number" msgstr "" -#: expr.c:1150 +#: expr.c:1182 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1170 +#: expr.c:1202 msgid "value too great for base" msgstr "" -#: general.c:60 +#: general.c:62 msgid "getcwd: cannot access parent directories" msgstr "" @@ -892,42 +887,42 @@ msgstr "" msgid "save_bash_input: buffer already exists for new fd %d" msgstr "" -#: jobs.c:693 +#: jobs.c:694 #, c-format msgid "deleting stopped job %d with process group %ld" msgstr "" -#: jobs.c:1001 +#: jobs.c:1002 #, c-format msgid "describe_pid: %ld: no such pid" msgstr "" -#: jobs.c:1632 nojobs.c:648 +#: jobs.c:1633 nojobs.c:648 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: jobs.c:1815 +#: jobs.c:1821 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2062 +#: jobs.c:2068 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2284 +#: jobs.c:2290 #, c-format msgid "%s: job has terminated" msgstr "" -#: jobs.c:2293 +#: jobs.c:2299 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3037 +#: jobs.c:3043 msgid "no job control in this shell" msgstr "" @@ -1063,12 +1058,12 @@ msgstr "" msgid "syntax error: `((%s))'" msgstr "" -#: make_cmd.c:560 +#: make_cmd.c:561 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:730 +#: make_cmd.c:731 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" @@ -1142,34 +1137,34 @@ msgstr "" msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:4400 +#: parse.y:4409 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:4418 +#: parse.y:4427 #, c-format msgid "syntax error near `%s'" msgstr "" -#: parse.y:4428 +#: parse.y:4437 msgid "syntax error: unexpected end of file" msgstr "" -#: parse.y:4428 +#: parse.y:4437 msgid "syntax error" msgstr "" -#: parse.y:4490 +#: parse.y:4499 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "" -#: parse.y:4649 +#: parse.y:4658 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:988 +#: pcomplete.c:998 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1179,12 +1174,12 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:260 +#: print_cmd.c:261 #, c-format msgid "print_command: bad connector `%d'" msgstr "" -#: print_cmd.c:1172 +#: print_cmd.c:1211 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" @@ -1234,124 +1229,124 @@ msgstr "" msgid "%c%c: invalid option" msgstr "" -#: shell.c:1590 +#: shell.c:1591 msgid "I have no name!" msgstr "" -#: shell.c:1725 +#: shell.c:1726 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" msgstr "" -#: shell.c:1727 +#: shell.c:1728 msgid "GNU long options:\n" msgstr "" -#: shell.c:1731 +#: shell.c:1732 msgid "Shell options:\n" msgstr "" -#: shell.c:1732 +#: shell.c:1733 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1747 +#: shell.c:1748 #, c-format msgid "\t-%s or -o option\n" msgstr "" -#: shell.c:1753 +#: shell.c:1754 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1754 +#: shell.c:1755 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1755 +#: shell.c:1756 msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:485 +#: sig.c:490 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: subst.c:1011 +#: subst.c:1046 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2020 +#: subst.c:2053 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:3516 subst.c:3532 +#: subst.c:3880 subst.c:3896 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:3563 +#: subst.c:3927 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:3608 +#: subst.c:3972 #, c-format msgid "cannot open named pipe %s for reading" msgstr "" -#: subst.c:3610 +#: subst.c:3974 #, c-format msgid "cannot open named pipe %s for writing" msgstr "" -#: subst.c:3618 +#: subst.c:3982 #, c-format msgid "cannout reset nodelay mode for fd %d" msgstr "" -#: subst.c:3628 +#: subst.c:3992 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:3803 +#: subst.c:4167 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:3832 +#: subst.c:4196 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:3849 +#: subst.c:4213 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:4284 +#: subst.c:4671 #, c-format msgid "%s: parameter null or not set" msgstr "" -#: subst.c:4529 +#: subst.c:4937 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:5209 +#: subst.c:5667 #, c-format msgid "%s: bad substitution" msgstr "" -#: subst.c:5283 +#: subst.c:5741 #, c-format msgid "$%s: cannot assign in this way" msgstr "" -#: subst.c:6652 +#: subst.c:7110 #, c-format msgid "no match: %s" msgstr "" @@ -1408,43 +1403,43 @@ msgstr "" msgid "trap_handler: bad signal %d" msgstr "" -#: variables.c:310 +#: variables.c:314 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:670 +#: variables.c:674 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1610 +#: variables.c:1617 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:2709 +#: variables.c:2724 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:2923 variables.c:2932 +#: variables.c:2938 variables.c:2947 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:2938 +#: variables.c:2953 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3363 +#: variables.c:3378 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3376 +#: variables.c:3391 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3442 +#: variables.c:3457 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" @@ -3271,470 +3266,471 @@ msgid "The command ARG is to be read and executed when the shell receives" msgstr "" #: builtins.c:1000 -msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" +msgid "signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC" msgstr "" #: builtins.c:1001 -msgid "reset to their original values. If ARG is the null string each" +msgid "is supplied) or `-', each specified signal is reset to its original" msgstr "" #: builtins.c:1002 -msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." +msgid "value. If ARG is the null string each SIGNAL_SPEC is ignored by the" msgstr "" #: builtins.c:1003 -msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" +msgid "shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)" msgstr "" #: builtins.c:1004 -msgid "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" +msgid "the command ARG is executed on exit from the shell. If a SIGNAL_SPEC" msgstr "" #: builtins.c:1005 -msgid "command. If ARG is `-p' then the trap commands associated with" +msgid "" +"is DEBUG, ARG is executed after every simple command. If the`-p' option" msgstr "" #: builtins.c:1006 -msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" +msgid "is supplied then the trap commands associated with each SIGNAL_SPEC are" msgstr "" #: builtins.c:1007 -msgid "only `-p' is given, trap prints the list of commands associated with" +msgid "displayed. If no arguments are supplied or if only `-p' is given, trap" msgstr "" #: builtins.c:1008 msgid "" -"each signal number. Each SIGNAL_SPEC is either a signal name in " +"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 or a signal number. Signal names" msgstr "" #: builtins.c:1010 -msgid "corresponding numbers. Note that a signal can be sent to the shell" +msgid "are case insensitive and the SIG prefix is optional. `trap -l' prints" msgstr "" #: builtins.c:1011 -msgid "with \"kill -signal $$\"." +msgid "a list of signal names and their corresponding numbers. Note that a" msgstr "" -#: builtins.c:1017 -msgid "For each NAME, indicate how it would be interpreted if used as a" +#: builtins.c:1012 +msgid "signal can be sent to the shell with \"kill -signal $$\"." msgstr "" #: builtins.c:1018 +msgid "For each NAME, indicate how it would be interpreted if used as a" +msgstr "" + +#: builtins.c:1019 msgid "command name." msgstr "" -#: builtins.c:1020 +#: builtins.c:1021 msgid "If the -t option is used, `type' outputs a single word which is one of" msgstr "" -#: builtins.c:1021 +#: builtins.c:1022 msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" msgstr "" -#: builtins.c:1022 +#: builtins.c:1023 msgid "alias, shell reserved word, shell function, shell builtin, disk file," msgstr "" -#: builtins.c:1023 +#: builtins.c:1024 msgid "or unfound, respectively." msgstr "" -#: builtins.c:1025 +#: builtins.c:1026 msgid "If the -p flag is used, `type' either returns the name of the disk" msgstr "" -#: builtins.c:1026 +#: builtins.c:1027 msgid "file that would be executed, or nothing if `type -t NAME' would not" msgstr "" -#: builtins.c:1027 +#: builtins.c:1028 msgid "return `file'." msgstr "" -#: builtins.c:1029 +#: builtins.c:1030 msgid "If the -a flag is used, `type' displays all of the places that contain" msgstr "" -#: builtins.c:1030 +#: builtins.c:1031 msgid "an executable named `file'. This includes aliases, builtins, and" msgstr "" -#: builtins.c:1031 +#: builtins.c:1032 msgid "functions, if and only if the -p flag is not also used." msgstr "" -#: builtins.c:1033 +#: builtins.c:1034 msgid "The -f flag suppresses shell function lookup." msgstr "" -#: builtins.c:1035 +#: builtins.c:1036 msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," msgstr "" -#: builtins.c:1036 +#: builtins.c:1037 msgid "builtin, or function, and returns the name of the disk file that would" msgstr "" -#: builtins.c:1037 +#: builtins.c:1038 msgid "be executed." msgstr "" -#: builtins.c:1044 +#: builtins.c:1045 msgid "Ulimit provides control over the resources available to processes" msgstr "" -#: builtins.c:1045 +#: builtins.c:1046 msgid "started by the shell, on systems that allow such control. If an" msgstr "" -#: builtins.c:1046 +#: builtins.c:1047 msgid "option is given, it is interpreted as follows:" msgstr "" -#: builtins.c:1048 +#: builtins.c:1049 msgid " -S\tuse the `soft' resource limit" msgstr "" -#: builtins.c:1049 +#: builtins.c:1050 msgid " -H\tuse the `hard' resource limit" msgstr "" -#: builtins.c:1050 +#: builtins.c:1051 msgid " -a\tall current limits are reported" msgstr "" -#: builtins.c:1051 +#: builtins.c:1052 msgid " -c\tthe maximum size of core files created" msgstr "" -#: builtins.c:1052 +#: builtins.c:1053 msgid " -d\tthe maximum size of a process's data segment" msgstr "" -#: builtins.c:1053 +#: builtins.c:1054 msgid " -f\tthe maximum size of files created by the shell" msgstr "" -#: builtins.c:1054 +#: builtins.c:1055 msgid " -l\tthe maximum size a process may lock into memory" msgstr "" -#: builtins.c:1055 +#: builtins.c:1056 msgid " -m\tthe maximum resident set size" msgstr "" -#: builtins.c:1056 +#: builtins.c:1057 msgid " -n\tthe maximum number of open file descriptors" msgstr "" -#: builtins.c:1057 +#: builtins.c:1058 msgid " -p\tthe pipe buffer size" msgstr "" -#: builtins.c:1058 +#: builtins.c:1059 msgid " -s\tthe maximum stack size" msgstr "" -#: builtins.c:1059 +#: builtins.c:1060 msgid " -t\tthe maximum amount of cpu time in seconds" msgstr "" -#: builtins.c:1060 +#: builtins.c:1061 msgid " -u\tthe maximum number of user processes" msgstr "" -#: builtins.c:1061 +#: builtins.c:1062 msgid " -v\tthe size of virtual memory" msgstr "" -#: builtins.c:1063 +#: builtins.c:1064 msgid "If LIMIT is given, it is the new value of the specified resource;" msgstr "" -#: builtins.c:1064 +#: builtins.c:1065 msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" msgstr "" -#: builtins.c:1065 +#: builtins.c:1066 msgid "" "the current soft limit, the current hard limit, and no limit, respectively." msgstr "" -#: builtins.c:1066 +#: builtins.c:1067 msgid "Otherwise, the current value of the specified resource is printed." msgstr "" -#: builtins.c:1067 +#: builtins.c:1068 msgid "If no option is given, then -f is assumed. Values are in 1024-byte" msgstr "" -#: builtins.c:1068 +#: builtins.c:1069 msgid "increments, except for -t, which is in seconds, -p, which is in" msgstr "" -#: builtins.c:1069 +#: builtins.c:1070 msgid "increments of 512 bytes, and -u, which is an unscaled number of" msgstr "" -#: builtins.c:1070 +#: builtins.c:1071 msgid "processes." msgstr "" -#: builtins.c:1077 +#: builtins.c:1078 msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" msgstr "" -#: builtins.c:1078 +#: builtins.c:1079 msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" msgstr "" -#: builtins.c:1079 +#: builtins.c:1080 msgid "option makes the output symbolic; otherwise an octal number is output." msgstr "" -#: builtins.c:1080 +#: builtins.c:1081 msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" msgstr "" -#: builtins.c:1081 +#: builtins.c:1082 msgid "that may be used as input. If MODE begins with a digit, it is" msgstr "" -#: builtins.c:1082 +#: builtins.c:1083 msgid "interpreted as an octal number, otherwise it is a symbolic mode string" msgstr "" -#: builtins.c:1083 +#: builtins.c:1084 msgid "like that accepted by chmod(1)." msgstr "" -#: builtins.c:1090 builtins.c:1102 +#: builtins.c:1091 builtins.c:1103 msgid "Wait for the specified process and report its termination status. If" msgstr "" -#: builtins.c:1091 builtins.c:1103 +#: builtins.c:1092 builtins.c:1104 msgid "N is not given, all currently active child processes are waited for," msgstr "" -#: builtins.c:1092 +#: builtins.c:1093 msgid "and the return code is zero. N may be a process ID or a job" msgstr "" -#: builtins.c:1093 +#: builtins.c:1094 msgid "specification; if a job spec is given, all processes in the job's" msgstr "" -#: builtins.c:1094 +#: builtins.c:1095 msgid "pipeline are waited for." msgstr "" -#: builtins.c:1104 +#: builtins.c:1105 msgid "and the return code is zero. N is a process ID; if it is not given," msgstr "" -#: builtins.c:1105 +#: builtins.c:1106 msgid "all child processes of the shell are waited for." msgstr "" -#: builtins.c:1112 +#: builtins.c:1113 msgid "The `for' loop executes a sequence of commands for each member in a" msgstr "" -#: builtins.c:1113 +#: builtins.c:1114 msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" msgstr "" -#: builtins.c:1114 +#: builtins.c:1115 msgid "assumed. For each element in WORDS, NAME is set to that element, and" msgstr "" -#: builtins.c:1115 +#: builtins.c:1116 msgid "the COMMANDS are executed." msgstr "" -#: builtins.c:1121 +#: builtins.c:1122 msgid "Equivalent to" msgstr "" -#: builtins.c:1122 +#: builtins.c:1123 msgid "\t(( EXP1 ))" msgstr "" -#: builtins.c:1123 +#: builtins.c:1124 msgid "\twhile (( EXP2 )); do" msgstr "" -#: builtins.c:1124 +#: builtins.c:1125 msgid "\t\tCOMMANDS" msgstr "" -#: builtins.c:1125 +#: builtins.c:1126 msgid "\t\t(( EXP3 ))" msgstr "" -#: builtins.c:1126 +#: builtins.c:1127 msgid "\tdone" msgstr "" -#: builtins.c:1127 +#: builtins.c:1128 msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" msgstr "" -#: builtins.c:1128 +#: builtins.c:1129 msgid "omitted, it behaves as if it evaluates to 1." msgstr "" -#: builtins.c:1134 +#: builtins.c:1135 msgid "The WORDS are expanded, generating a list of words. The" msgstr "" -#: builtins.c:1135 +#: builtins.c:1136 msgid "set of expanded words is printed on the standard error, each" msgstr "" -#: builtins.c:1136 +#: builtins.c:1137 msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" msgstr "" -#: builtins.c:1137 +#: builtins.c:1138 msgid "is assumed. The PS3 prompt is then displayed and a line read" msgstr "" -#: builtins.c:1138 +#: builtins.c:1139 msgid "from the standard input. If the line consists of the number" msgstr "" -#: builtins.c:1139 +#: builtins.c:1140 msgid "corresponding to one of the displayed words, then NAME is set" msgstr "" -#: builtins.c:1140 +#: builtins.c:1141 msgid "to that word. If the line is empty, WORDS and the prompt are" msgstr "" -#: builtins.c:1141 +#: builtins.c:1142 msgid "redisplayed. If EOF is read, the command completes. Any other" msgstr "" -#: builtins.c:1142 +#: builtins.c:1143 msgid "value read causes NAME to be set to null. The line read is saved" msgstr "" -#: builtins.c:1143 +#: builtins.c:1144 msgid "in the variable REPLY. COMMANDS are executed after each selection" msgstr "" -#: builtins.c:1144 +#: builtins.c:1145 msgid "until a break command is executed." msgstr "" -#: builtins.c:1150 +#: builtins.c:1151 msgid "Execute PIPELINE and print a summary of the real time, user CPU time," msgstr "" -#: builtins.c:1151 +#: builtins.c:1152 msgid "and system CPU time spent executing PIPELINE when it terminates." msgstr "" -#: builtins.c:1152 +#: builtins.c:1153 msgid "The return status is the return status of PIPELINE. The `-p' option" msgstr "" -#: builtins.c:1153 +#: builtins.c:1154 msgid "prints the timing summary in a slightly different format. This uses" msgstr "" -#: builtins.c:1154 +#: builtins.c:1155 msgid "the value of the TIMEFORMAT variable as the output format." msgstr "" -#: builtins.c:1160 +#: builtins.c:1161 msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" msgstr "" -#: builtins.c:1161 +#: builtins.c:1162 msgid "`|' is used to separate multiple patterns." msgstr "" -#: builtins.c:1167 +#: builtins.c:1168 msgid "" "The if COMMANDS are executed. If the exit status is zero, then the then" msgstr "" -#: builtins.c:1168 +#: builtins.c:1169 msgid "" "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" msgstr "" -#: builtins.c:1169 +#: builtins.c:1170 msgid "" "in turn, and if the exit status is zero, the corresponding then COMMANDS" msgstr "" -#: builtins.c:1170 +#: builtins.c:1171 msgid "" "are executed and the if command completes. Otherwise, the else COMMANDS" msgstr "" -#: builtins.c:1171 +#: builtins.c:1172 msgid "" "are executed, if present. The exit status is the exit status of the last" msgstr "" -#: builtins.c:1172 +#: builtins.c:1173 msgid "command executed, or zero if no condition tested true." msgstr "" -#: builtins.c:1178 builtins.c:1185 +#: builtins.c:1179 builtins.c:1186 msgid "Expand and execute COMMANDS as long as the final command in the" msgstr "" -#: builtins.c:1179 +#: builtins.c:1180 msgid "`while' COMMANDS has an exit status of zero." msgstr "" -#: builtins.c:1186 +#: builtins.c:1187 msgid "`until' COMMANDS has an exit status which is not zero." msgstr "" -#: builtins.c:1192 +#: builtins.c:1193 msgid "Create a simple command invoked by NAME which runs COMMANDS." msgstr "" -#: builtins.c:1193 +#: builtins.c:1194 msgid "Arguments on the command line along with NAME are passed to the" msgstr "" -#: builtins.c:1194 +#: builtins.c:1195 msgid "function as $0 .. $n." msgstr "" -#: builtins.c:1200 +#: builtins.c:1201 msgid "Run a set of commands in a group. This is one way to redirect an" msgstr "" -#: builtins.c:1201 +#: builtins.c:1202 msgid "entire set of commands." msgstr "" -#: builtins.c:1207 -msgid "This is similar to the `fg' command. Resume a stopped or background" -msgstr "" - #: builtins.c:1208 -msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +msgid "This is similar to the `fg' command. Resume a stopped or background" msgstr "" #: builtins.c:1209 -msgid "WORD, then the job whose name begins with WORD is used. Following the" +msgid "job specified by %JOBSPEC. Following the job specification with a `&'" msgstr "" #: builtins.c:1210 -msgid "job specification with a `&' places the job in the background." +msgid "places the job in the background." msgstr "" #: builtins.c:1216 @@ -3798,377 +3794,373 @@ msgid "BASH_VERSION Version information for this Bash." msgstr "" #: builtins.c:1242 -msgid "CDPATH A colon separated list of directories to search" +msgid "CDPATH A colon-separated list of directories to search" msgstr "" #: builtins.c:1243 -msgid "\t\twhen the argument to `cd' is not found in the current" +msgid "\t\tfor directries given as arguments to `cd'." msgstr "" #: builtins.c:1244 -msgid "\t\tdirectory." -msgstr "" - -#: builtins.c:1245 msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" msgstr "" -#: builtins.c:1246 +#: builtins.c:1245 msgid "\t\tbe ignored by pathname expansion." msgstr "" -#: builtins.c:1248 +#: builtins.c:1247 msgid "" "HISTFILE The name of the file where your command history is stored." msgstr "" -#: builtins.c:1249 +#: builtins.c:1248 msgid "HISTFILESIZE The maximum number of lines this file can contain." msgstr "" -#: builtins.c:1250 +#: builtins.c:1249 msgid "HISTSIZE The maximum number of history lines that a running" msgstr "" -#: builtins.c:1251 +#: builtins.c:1250 msgid "\t\tshell can access." msgstr "" -#: builtins.c:1253 +#: builtins.c:1252 msgid "HOME The complete pathname to your login directory." msgstr "" -#: builtins.c:1254 +#: builtins.c:1253 msgid "HOSTNAME\tThe name of the current host." msgstr "" -#: builtins.c:1255 +#: builtins.c:1254 msgid "HOSTTYPE The type of CPU this version of Bash is running under." msgstr "" -#: builtins.c:1256 +#: builtins.c:1255 msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" msgstr "" -#: builtins.c:1257 +#: builtins.c:1256 msgid "\t\tcharacter as the sole input. If set, then the value" msgstr "" -#: builtins.c:1258 +#: builtins.c:1257 msgid "\t\tof it is the number of EOF characters that can be seen" msgstr "" -#: builtins.c:1259 +#: builtins.c:1258 msgid "\t\tin a row on an empty line before the shell will exit" msgstr "" -#: builtins.c:1260 +#: builtins.c:1259 msgid "\t\t(default 10). When unset, EOF signifies the end of input." msgstr "" -#: builtins.c:1261 +#: builtins.c:1260 msgid "MACHTYPE\tA string describing the current system Bash is running on." msgstr "" -#: builtins.c:1262 +#: builtins.c:1261 msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." msgstr "" -#: builtins.c:1263 +#: builtins.c:1262 msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" msgstr "" -#: builtins.c:1264 +#: builtins.c:1263 msgid "\t\tfor new mail." msgstr "" -#: builtins.c:1265 +#: builtins.c:1264 msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." msgstr "" -#: builtins.c:1266 +#: builtins.c:1265 msgid "PATH A colon-separated list of directories to search when" msgstr "" -#: builtins.c:1267 +#: builtins.c:1266 msgid "\t\tlooking for commands." msgstr "" -#: builtins.c:1268 +#: builtins.c:1267 msgid "PROMPT_COMMAND A command to be executed before the printing of each" msgstr "" -#: builtins.c:1269 +#: builtins.c:1268 msgid "\t\tprimary prompt." msgstr "" -#: builtins.c:1270 +#: builtins.c:1269 msgid "PS1 The primary prompt string." msgstr "" -#: builtins.c:1271 +#: builtins.c:1270 msgid "PS2 The secondary prompt string." msgstr "" -#: builtins.c:1272 +#: builtins.c:1271 msgid "PWD\t\tThe full pathname of the current directory." msgstr "" -#: builtins.c:1273 +#: builtins.c:1272 msgid "SHELLOPTS\tA colon-separated list of enabled shell options." msgstr "" -#: builtins.c:1274 +#: builtins.c:1273 msgid "TERM The name of the current terminal type." msgstr "" -#: builtins.c:1275 +#: builtins.c:1274 msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" msgstr "" -#: builtins.c:1276 +#: builtins.c:1275 msgid "\t\t`time' reserved word." msgstr "" -#: builtins.c:1277 +#: builtins.c:1276 msgid "auto_resume Non-null means a command word appearing on a line by" msgstr "" -#: builtins.c:1278 +#: builtins.c:1277 msgid "\t\titself is first looked for in the list of currently" msgstr "" -#: builtins.c:1279 +#: builtins.c:1278 msgid "\t\tstopped jobs. If found there, that job is foregrounded." msgstr "" -#: builtins.c:1280 +#: builtins.c:1279 msgid "\t\tA value of `exact' means that the command word must" msgstr "" -#: builtins.c:1281 +#: builtins.c:1280 msgid "\t\texactly match a command in the list of stopped jobs. A" msgstr "" -#: builtins.c:1282 +#: builtins.c:1281 msgid "\t\tvalue of `substring' means that the command word must" msgstr "" -#: builtins.c:1283 +#: builtins.c:1282 msgid "\t\tmatch a substring of the job. Any other value means that" msgstr "" -#: builtins.c:1284 +#: builtins.c:1283 msgid "\t\tthe command must be a prefix of a stopped job." msgstr "" -#: builtins.c:1287 +#: builtins.c:1286 msgid "histchars Characters controlling history expansion and quick" msgstr "" -#: builtins.c:1288 +#: builtins.c:1287 msgid "\t\tsubstitution. The first character is the history" msgstr "" -#: builtins.c:1289 +#: builtins.c:1288 msgid "\t\tsubstitution character, usually `!'. The second is" msgstr "" -#: builtins.c:1290 +#: builtins.c:1289 msgid "\t\tthe `quick substitution' character, usually `^'. The" msgstr "" -#: builtins.c:1291 +#: builtins.c:1290 msgid "\t\tthird is the `history comment' character, usually `#'." msgstr "" -#: builtins.c:1293 +#: builtins.c:1292 msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" msgstr "" -#: builtins.c:1294 +#: builtins.c:1293 msgid "\t\tcommands should be saved on the history list." msgstr "" -#: builtins.c:1306 +#: builtins.c:1305 msgid "+N\tRotates the stack so that the Nth directory (counting" msgstr "" -#: builtins.c:1307 +#: builtins.c:1306 msgid "\tfrom the left of the list shown by `dirs', starting with" msgstr "" -#: builtins.c:1308 builtins.c:1312 +#: builtins.c:1307 builtins.c:1311 msgid "\tzero) is at the top." msgstr "" -#: builtins.c:1310 +#: builtins.c:1309 msgid "-N\tRotates the stack so that the Nth directory (counting" msgstr "" -#: builtins.c:1311 +#: builtins.c:1310 msgid "\tfrom the right of the list shown by `dirs', starting with" msgstr "" -#: builtins.c:1314 +#: builtins.c:1313 msgid "-n\tsuppress the normal change of directory when adding directories" msgstr "" -#: builtins.c:1315 +#: builtins.c:1314 msgid "\tto the stack, so only the stack is manipulated." msgstr "" -#: builtins.c:1317 +#: builtins.c:1316 msgid "dir\tadds DIR to the directory stack at the top, making it the" msgstr "" -#: builtins.c:1318 +#: builtins.c:1317 msgid "\tnew current working directory." msgstr "" -#: builtins.c:1332 +#: builtins.c:1331 msgid "+N\tremoves the Nth entry counting from the left of the list" msgstr "" -#: builtins.c:1333 +#: builtins.c:1332 msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" msgstr "" -#: builtins.c:1334 +#: builtins.c:1333 msgid "\tremoves the first directory, `popd +1' the second." msgstr "" -#: builtins.c:1336 +#: builtins.c:1335 msgid "-N\tremoves the Nth entry counting from the right of the list" msgstr "" -#: builtins.c:1337 +#: builtins.c:1336 msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" msgstr "" -#: builtins.c:1338 +#: builtins.c:1337 msgid "\tremoves the last directory, `popd -1' the next to last." msgstr "" -#: builtins.c:1340 +#: builtins.c:1339 msgid "-n\tsuppress the normal change of directory when removing directories" msgstr "" -#: builtins.c:1341 +#: builtins.c:1340 msgid "\tfrom the stack, so only the stack is manipulated." msgstr "" -#: builtins.c:1363 +#: builtins.c:1362 msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" msgstr "" -#: builtins.c:1364 builtins.c:1367 +#: builtins.c:1363 builtins.c:1366 msgid "\tdirs when invoked without options, starting with zero." msgstr "" -#: builtins.c:1366 +#: builtins.c:1365 msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" msgstr "" -#: builtins.c:1374 +#: builtins.c:1373 msgid "Toggle the values of variables controlling optional behavior." msgstr "" -#: builtins.c:1375 +#: builtins.c:1374 msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" msgstr "" -#: builtins.c:1376 +#: builtins.c:1375 msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" msgstr "" -#: builtins.c:1377 +#: builtins.c:1376 msgid "status indicates whether each OPTNAME is set or unset. The -o" msgstr "" -#: builtins.c:1378 +#: builtins.c:1377 msgid "option restricts the OPTNAMEs to those defined for use with" msgstr "" -#: builtins.c:1379 +#: builtins.c:1378 msgid "`set -o'. With no options, or with the -p option, a list of all" msgstr "" -#: builtins.c:1380 +#: builtins.c:1379 msgid "settable options is displayed, with an indication of whether or" msgstr "" -#: builtins.c:1381 +#: builtins.c:1380 msgid "not each is set." msgstr "" -#: builtins.c:1387 +#: builtins.c:1386 msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" msgstr "" -#: builtins.c:1388 +#: builtins.c:1387 msgid "is a character string which contains three types of objects: plain" msgstr "" -#: builtins.c:1389 +#: builtins.c:1388 msgid "" "characters, which are simply copied to standard output, character escape" msgstr "" -#: builtins.c:1390 +#: builtins.c:1389 msgid "sequences which are converted and copied to the standard output, and" msgstr "" -#: builtins.c:1391 +#: builtins.c:1390 msgid "" "format specifications, each of which causes printing of the next successive" msgstr "" -#: builtins.c:1392 +#: builtins.c:1391 msgid "argument. In addition to the standard printf(1) formats, %b means to" msgstr "" -#: builtins.c:1393 +#: builtins.c:1392 msgid "expand backslash escape sequences in the corresponding argument, and %q" msgstr "" -#: builtins.c:1394 +#: builtins.c:1393 msgid "means to quote the argument in a way that can be reused as shell input." msgstr "" -#: builtins.c:1401 +#: builtins.c:1400 msgid "For each NAME, specify how arguments are to be completed." msgstr "" -#: builtins.c:1402 +#: builtins.c:1401 msgid "If the -p option is supplied, or if no options are supplied, existing" msgstr "" -#: builtins.c:1403 +#: builtins.c:1402 msgid "completion specifications are printed in a way that allows them to be" msgstr "" -#: builtins.c:1404 +#: builtins.c:1403 msgid "reused as input. The -r option removes a completion specification for" msgstr "" -#: builtins.c:1405 +#: builtins.c:1404 msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." msgstr "" -#: builtins.c:1413 +#: builtins.c:1412 msgid "Display the possible completions depending on the options. Intended" msgstr "" -#: builtins.c:1414 +#: builtins.c:1413 msgid "" "to be used from within a shell function generating possible completions." msgstr "" -#: builtins.c:1415 +#: builtins.c:1414 msgid "If the optional WORD argument is supplied, matches against WORD are" msgstr "" -#: builtins.c:1416 +#: builtins.c:1415 msgid "generated." msgstr "" diff --git a/po/diffs b/po/diffs new file mode 100644 index 000000000..de6c1eb65 --- /dev/null +++ b/po/diffs @@ -0,0 +1,2938 @@ +*** ../po.orig/bash.pot Fri Apr 30 22:40:24 2004 +--- bash.pot Thu Sep 9 17:59:44 2004 +*************** +*** 16,25 **** + #: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952 + #: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973 +! #: builtins.c:976 builtins.c:1019 builtins.c:1024 builtins.c:1028 +! #: builtins.c:1032 builtins.c:1034 builtins.c:1047 builtins.c:1062 +! #: builtins.c:1226 builtins.c:1231 builtins.c:1305 builtins.c:1309 +! #: builtins.c:1313 builtins.c:1316 builtins.c:1319 builtins.c:1331 +! #: builtins.c:1335 builtins.c:1339 builtins.c:1342 builtins.c:1354 +! #: builtins.c:1362 builtins.c:1365 + #, fuzzy + msgid "" +--- 16,25 ---- + #: builtins.c:943 builtins.c:946 builtins.c:948 builtins.c:950 builtins.c:952 + #: builtins.c:954 builtins.c:957 builtins.c:966 builtins.c:968 builtins.c:973 +! #: builtins.c:976 builtins.c:1020 builtins.c:1025 builtins.c:1029 +! #: builtins.c:1033 builtins.c:1035 builtins.c:1048 builtins.c:1063 +! #: builtins.c:1226 builtins.c:1231 builtins.c:1304 builtins.c:1308 +! #: builtins.c:1312 builtins.c:1315 builtins.c:1318 builtins.c:1330 +! #: builtins.c:1334 builtins.c:1338 builtins.c:1341 builtins.c:1353 +! #: builtins.c:1361 builtins.c:1364 + #, fuzzy + msgid "" +*************** +*** 27,31 **** + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: bug-bash@gnu.org\n" +! "POT-Creation-Date: 2003-12-22 15:34-0500\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \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 \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 " + 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 or a signal number. Signal names" + msgstr "" + + #: builtins.c:1010 +! msgid "are case insensitive and the SIG prefix is optional. `trap -l' prints" + msgstr "" + + #: builtins.c:1011 +! msgid "a list of signal names and their corresponding numbers. Note that a" + msgstr "" + +! #: builtins.c:1012 +! msgid "signal can be sent to the shell with \"kill -signal $$\"." + msgstr "" + + #: builtins.c:1018 ++ msgid "For each NAME, indicate how it would be interpreted if used as a" ++ msgstr "" ++ ++ #: builtins.c:1019 + msgid "command name." + msgstr "" + +! #: builtins.c:1021 + msgid "If the -t option is used, `type' outputs a single word which is one of" + msgstr "" + +! #: builtins.c:1022 + msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" + msgstr "" + +! #: builtins.c:1023 + msgid "alias, shell reserved word, shell function, shell builtin, disk file," + msgstr "" + +! #: builtins.c:1024 + msgid "or unfound, respectively." + msgstr "" + +! #: builtins.c:1026 + msgid "If the -p flag is used, `type' either returns the name of the disk" + msgstr "" + +! #: builtins.c:1027 + msgid "file that would be executed, or nothing if `type -t NAME' would not" + msgstr "" + +! #: builtins.c:1028 + msgid "return `file'." + msgstr "" + +! #: builtins.c:1030 + msgid "If the -a flag is used, `type' displays all of the places that contain" + msgstr "" + +! #: builtins.c:1031 + msgid "an executable named `file'. This includes aliases, builtins, and" + msgstr "" + +! #: builtins.c:1032 + msgid "functions, if and only if the -p flag is not also used." + msgstr "" + +! #: builtins.c:1034 + msgid "The -f flag suppresses shell function lookup." + msgstr "" + +! #: builtins.c:1036 + msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," + msgstr "" + +! #: builtins.c:1037 + msgid "builtin, or function, and returns the name of the disk file that would" + msgstr "" + +! #: builtins.c:1038 + msgid "be executed." + msgstr "" + +! #: builtins.c:1045 + msgid "Ulimit provides control over the resources available to processes" + msgstr "" + +! #: builtins.c:1046 + msgid "started by the shell, on systems that allow such control. If an" + msgstr "" + +! #: builtins.c:1047 + msgid "option is given, it is interpreted as follows:" + msgstr "" + +! #: builtins.c:1049 + msgid " -S\tuse the `soft' resource limit" + msgstr "" + +! #: builtins.c:1050 + msgid " -H\tuse the `hard' resource limit" + msgstr "" + +! #: builtins.c:1051 + msgid " -a\tall current limits are reported" + msgstr "" + +! #: builtins.c:1052 + msgid " -c\tthe maximum size of core files created" + msgstr "" + +! #: builtins.c:1053 + msgid " -d\tthe maximum size of a process's data segment" + msgstr "" + +! #: builtins.c:1054 + msgid " -f\tthe maximum size of files created by the shell" + msgstr "" + +! #: builtins.c:1055 + msgid " -l\tthe maximum size a process may lock into memory" + msgstr "" + +! #: builtins.c:1056 + msgid " -m\tthe maximum resident set size" + msgstr "" + +! #: builtins.c:1057 + msgid " -n\tthe maximum number of open file descriptors" + msgstr "" + +! #: builtins.c:1058 + msgid " -p\tthe pipe buffer size" + msgstr "" + +! #: builtins.c:1059 + msgid " -s\tthe maximum stack size" + msgstr "" + +! #: builtins.c:1060 + msgid " -t\tthe maximum amount of cpu time in seconds" + msgstr "" + +! #: builtins.c:1061 + msgid " -u\tthe maximum number of user processes" + msgstr "" + +! #: builtins.c:1062 + msgid " -v\tthe size of virtual memory" + msgstr "" + +! #: builtins.c:1064 + msgid "If LIMIT is given, it is the new value of the specified resource;" + msgstr "" + +! #: builtins.c:1065 + msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" + msgstr "" + +! #: builtins.c:1066 + msgid "" + "the current soft limit, the current hard limit, and no limit, respectively." + msgstr "" + +! #: builtins.c:1067 + msgid "Otherwise, the current value of the specified resource is printed." + msgstr "" + +! #: builtins.c:1068 + msgid "If no option is given, then -f is assumed. Values are in 1024-byte" + msgstr "" + +! #: builtins.c:1069 + msgid "increments, except for -t, which is in seconds, -p, which is in" + msgstr "" + +! #: builtins.c:1070 + msgid "increments of 512 bytes, and -u, which is an unscaled number of" + msgstr "" + +! #: builtins.c:1071 + msgid "processes." + msgstr "" + +! #: builtins.c:1078 + msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" + msgstr "" + +! #: builtins.c:1079 + msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" + msgstr "" + +! #: builtins.c:1080 + msgid "option makes the output symbolic; otherwise an octal number is output." + msgstr "" + +! #: builtins.c:1081 + msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" + msgstr "" + +! #: builtins.c:1082 + msgid "that may be used as input. If MODE begins with a digit, it is" + msgstr "" + +! #: builtins.c:1083 + msgid "interpreted as an octal number, otherwise it is a symbolic mode string" + msgstr "" + +! #: builtins.c:1084 + msgid "like that accepted by chmod(1)." + msgstr "" + +! #: builtins.c:1091 builtins.c:1103 + msgid "Wait for the specified process and report its termination status. If" + msgstr "" + +! #: builtins.c:1092 builtins.c:1104 + msgid "N is not given, all currently active child processes are waited for," + msgstr "" + +! #: builtins.c:1093 + msgid "and the return code is zero. N may be a process ID or a job" + msgstr "" + +! #: builtins.c:1094 + msgid "specification; if a job spec is given, all processes in the job's" + msgstr "" + +! #: builtins.c:1095 + msgid "pipeline are waited for." + msgstr "" + +! #: builtins.c:1105 + msgid "and the return code is zero. N is a process ID; if it is not given," + msgstr "" + +! #: builtins.c:1106 + msgid "all child processes of the shell are waited for." + msgstr "" + +! #: builtins.c:1113 + msgid "The `for' loop executes a sequence of commands for each member in a" + msgstr "" + +! #: builtins.c:1114 + msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" + msgstr "" + +! #: builtins.c:1115 + msgid "assumed. For each element in WORDS, NAME is set to that element, and" + msgstr "" + +! #: builtins.c:1116 + msgid "the COMMANDS are executed." + msgstr "" + +! #: builtins.c:1122 + msgid "Equivalent to" + msgstr "" + +! #: builtins.c:1123 + msgid "\t(( EXP1 ))" + msgstr "" + +! #: builtins.c:1124 + msgid "\twhile (( EXP2 )); do" + msgstr "" + +! #: builtins.c:1125 + msgid "\t\tCOMMANDS" + msgstr "" + +! #: builtins.c:1126 + msgid "\t\t(( EXP3 ))" + msgstr "" + +! #: builtins.c:1127 + msgid "\tdone" + msgstr "" + +! #: builtins.c:1128 + msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" + msgstr "" + +! #: builtins.c:1129 + msgid "omitted, it behaves as if it evaluates to 1." + msgstr "" + +! #: builtins.c:1135 + msgid "The WORDS are expanded, generating a list of words. The" + msgstr "" + +! #: builtins.c:1136 + msgid "set of expanded words is printed on the standard error, each" + msgstr "" + +! #: builtins.c:1137 + msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" + msgstr "" + +! #: builtins.c:1138 + msgid "is assumed. The PS3 prompt is then displayed and a line read" + msgstr "" + +! #: builtins.c:1139 + msgid "from the standard input. If the line consists of the number" + msgstr "" + +! #: builtins.c:1140 + msgid "corresponding to one of the displayed words, then NAME is set" + msgstr "" + +! #: builtins.c:1141 + msgid "to that word. If the line is empty, WORDS and the prompt are" + msgstr "" + +! #: builtins.c:1142 + msgid "redisplayed. If EOF is read, the command completes. Any other" + msgstr "" + +! #: builtins.c:1143 + msgid "value read causes NAME to be set to null. The line read is saved" + msgstr "" + +! #: builtins.c:1144 + msgid "in the variable REPLY. COMMANDS are executed after each selection" + msgstr "" + +! #: builtins.c:1145 + msgid "until a break command is executed." + msgstr "" + +! #: builtins.c:1151 + msgid "Execute PIPELINE and print a summary of the real time, user CPU time," + msgstr "" + +! #: builtins.c:1152 + msgid "and system CPU time spent executing PIPELINE when it terminates." + msgstr "" + +! #: builtins.c:1153 + msgid "The return status is the return status of PIPELINE. The `-p' option" + msgstr "" + +! #: builtins.c:1154 + msgid "prints the timing summary in a slightly different format. This uses" + msgstr "" + +! #: builtins.c:1155 + msgid "the value of the TIMEFORMAT variable as the output format." + msgstr "" + +! #: builtins.c:1161 + msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" + msgstr "" + +! #: builtins.c:1162 + msgid "`|' is used to separate multiple patterns." + msgstr "" + +! #: builtins.c:1168 + msgid "" + "The if COMMANDS are executed. If the exit status is zero, then the then" + msgstr "" + +! #: builtins.c:1169 + msgid "" + "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" + msgstr "" + +! #: builtins.c:1170 + msgid "" + "in turn, and if the exit status is zero, the corresponding then COMMANDS" + msgstr "" + +! #: builtins.c:1171 + msgid "" + "are executed and the if command completes. Otherwise, the else COMMANDS" + msgstr "" + +! #: builtins.c:1172 + msgid "" + "are executed, if present. The exit status is the exit status of the last" + msgstr "" + +! #: builtins.c:1173 + msgid "command executed, or zero if no condition tested true." + msgstr "" + +! #: builtins.c:1179 builtins.c:1186 + msgid "Expand and execute COMMANDS as long as the final command in the" + msgstr "" + +! #: builtins.c:1180 + msgid "`while' COMMANDS has an exit status of zero." + msgstr "" + +! #: builtins.c:1187 + msgid "`until' COMMANDS has an exit status which is not zero." + msgstr "" + +! #: builtins.c:1193 + msgid "Create a simple command invoked by NAME which runs COMMANDS." + msgstr "" + +! #: builtins.c:1194 + msgid "Arguments on the command line along with NAME are passed to the" + msgstr "" + +! #: builtins.c:1195 + msgid "function as $0 .. $n." + msgstr "" + +! #: builtins.c:1201 + msgid "Run a set of commands in a group. This is one way to redirect an" + msgstr "" + +! #: builtins.c:1202 + msgid "entire set of commands." + msgstr "" + + #: builtins.c:1208 +! msgid "This is similar to the `fg' command. Resume a stopped or background" + msgstr "" + + #: builtins.c:1209 +! msgid "job specified by %JOBSPEC. Following the job specification with a `&'" + msgstr "" + + #: builtins.c:1210 +! msgid "places the job in the background." + msgstr "" + +*************** +*** 3799,4174 **** + + #: builtins.c:1242 +! msgid "CDPATH A colon separated list of directories to search" + msgstr "" + + #: builtins.c:1243 +! msgid "\t\twhen the argument to `cd' is not found in the current" + msgstr "" + + #: builtins.c:1244 +- msgid "\t\tdirectory." +- msgstr "" +- +- #: builtins.c:1245 + msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" + msgstr "" + +! #: builtins.c:1246 + msgid "\t\tbe ignored by pathname expansion." + msgstr "" + +! #: builtins.c:1248 + msgid "" + "HISTFILE The name of the file where your command history is stored." + msgstr "" + +! #: builtins.c:1249 + msgid "HISTFILESIZE The maximum number of lines this file can contain." + msgstr "" + +! #: builtins.c:1250 + msgid "HISTSIZE The maximum number of history lines that a running" + msgstr "" + +! #: builtins.c:1251 + msgid "\t\tshell can access." + msgstr "" + +! #: builtins.c:1253 + msgid "HOME The complete pathname to your login directory." + msgstr "" + +! #: builtins.c:1254 + msgid "HOSTNAME\tThe name of the current host." + msgstr "" + +! #: builtins.c:1255 + msgid "HOSTTYPE The type of CPU this version of Bash is running under." + msgstr "" + +! #: builtins.c:1256 + msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" + msgstr "" + +! #: builtins.c:1257 + msgid "\t\tcharacter as the sole input. If set, then the value" + msgstr "" + +! #: builtins.c:1258 + msgid "\t\tof it is the number of EOF characters that can be seen" + msgstr "" + +! #: builtins.c:1259 + msgid "\t\tin a row on an empty line before the shell will exit" + msgstr "" + +! #: builtins.c:1260 + msgid "\t\t(default 10). When unset, EOF signifies the end of input." + msgstr "" + +! #: builtins.c:1261 + msgid "MACHTYPE\tA string describing the current system Bash is running on." + msgstr "" + +! #: builtins.c:1262 + msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." + msgstr "" + +! #: builtins.c:1263 + msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" + msgstr "" + +! #: builtins.c:1264 + msgid "\t\tfor new mail." + msgstr "" + +! #: builtins.c:1265 + msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." + msgstr "" + +! #: builtins.c:1266 + msgid "PATH A colon-separated list of directories to search when" + msgstr "" + +! #: builtins.c:1267 + msgid "\t\tlooking for commands." + msgstr "" + +! #: builtins.c:1268 + msgid "PROMPT_COMMAND A command to be executed before the printing of each" + msgstr "" + +! #: builtins.c:1269 + msgid "\t\tprimary prompt." + msgstr "" + +! #: builtins.c:1270 + msgid "PS1 The primary prompt string." + msgstr "" + +! #: builtins.c:1271 + msgid "PS2 The secondary prompt string." + msgstr "" + +! #: builtins.c:1272 + msgid "PWD\t\tThe full pathname of the current directory." + msgstr "" + +! #: builtins.c:1273 + msgid "SHELLOPTS\tA colon-separated list of enabled shell options." + msgstr "" + +! #: builtins.c:1274 + msgid "TERM The name of the current terminal type." + msgstr "" + +! #: builtins.c:1275 + msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" + msgstr "" + +! #: builtins.c:1276 + msgid "\t\t`time' reserved word." + msgstr "" + +! #: builtins.c:1277 + msgid "auto_resume Non-null means a command word appearing on a line by" + msgstr "" + +! #: builtins.c:1278 + msgid "\t\titself is first looked for in the list of currently" + msgstr "" + +! #: builtins.c:1279 + msgid "\t\tstopped jobs. If found there, that job is foregrounded." + msgstr "" + +! #: builtins.c:1280 + msgid "\t\tA value of `exact' means that the command word must" + msgstr "" + +! #: builtins.c:1281 + msgid "\t\texactly match a command in the list of stopped jobs. A" + msgstr "" + +! #: builtins.c:1282 + msgid "\t\tvalue of `substring' means that the command word must" + msgstr "" + +! #: builtins.c:1283 + msgid "\t\tmatch a substring of the job. Any other value means that" + msgstr "" + +! #: builtins.c:1284 + msgid "\t\tthe command must be a prefix of a stopped job." + msgstr "" + +! #: builtins.c:1287 + msgid "histchars Characters controlling history expansion and quick" + msgstr "" + +! #: builtins.c:1288 + msgid "\t\tsubstitution. The first character is the history" + msgstr "" + +! #: builtins.c:1289 + msgid "\t\tsubstitution character, usually `!'. The second is" + msgstr "" + +! #: builtins.c:1290 + msgid "\t\tthe `quick substitution' character, usually `^'. The" + msgstr "" + +! #: builtins.c:1291 + msgid "\t\tthird is the `history comment' character, usually `#'." + msgstr "" + +! #: builtins.c:1293 + msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" + msgstr "" + +! #: builtins.c:1294 + msgid "\t\tcommands should be saved on the history list." + msgstr "" + +! #: builtins.c:1306 + msgid "+N\tRotates the stack so that the Nth directory (counting" + msgstr "" + +! #: builtins.c:1307 + msgid "\tfrom the left of the list shown by `dirs', starting with" + msgstr "" + +! #: builtins.c:1308 builtins.c:1312 + msgid "\tzero) is at the top." + msgstr "" + +! #: builtins.c:1310 + msgid "-N\tRotates the stack so that the Nth directory (counting" + msgstr "" + +! #: builtins.c:1311 + msgid "\tfrom the right of the list shown by `dirs', starting with" + msgstr "" + +! #: builtins.c:1314 + msgid "-n\tsuppress the normal change of directory when adding directories" + msgstr "" + +! #: builtins.c:1315 + msgid "\tto the stack, so only the stack is manipulated." + msgstr "" + +! #: builtins.c:1317 + msgid "dir\tadds DIR to the directory stack at the top, making it the" + msgstr "" + +! #: builtins.c:1318 + msgid "\tnew current working directory." + msgstr "" + +! #: builtins.c:1332 + msgid "+N\tremoves the Nth entry counting from the left of the list" + msgstr "" + +! #: builtins.c:1333 + msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" + msgstr "" + +! #: builtins.c:1334 + msgid "\tremoves the first directory, `popd +1' the second." + msgstr "" + +! #: builtins.c:1336 + msgid "-N\tremoves the Nth entry counting from the right of the list" + msgstr "" + +! #: builtins.c:1337 + msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" + msgstr "" + +! #: builtins.c:1338 + msgid "\tremoves the last directory, `popd -1' the next to last." + msgstr "" + +! #: builtins.c:1340 + msgid "-n\tsuppress the normal change of directory when removing directories" + msgstr "" + +! #: builtins.c:1341 + msgid "\tfrom the stack, so only the stack is manipulated." + msgstr "" + +! #: builtins.c:1363 + msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" + msgstr "" + +! #: builtins.c:1364 builtins.c:1367 + msgid "\tdirs when invoked without options, starting with zero." + msgstr "" + +! #: builtins.c:1366 + msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" + msgstr "" + +! #: builtins.c:1374 + msgid "Toggle the values of variables controlling optional behavior." + msgstr "" + +! #: builtins.c:1375 + msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" + msgstr "" + +! #: builtins.c:1376 + msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" + msgstr "" + +! #: builtins.c:1377 + msgid "status indicates whether each OPTNAME is set or unset. The -o" + msgstr "" + +! #: builtins.c:1378 + msgid "option restricts the OPTNAMEs to those defined for use with" + msgstr "" + +! #: builtins.c:1379 + msgid "`set -o'. With no options, or with the -p option, a list of all" + msgstr "" + +! #: builtins.c:1380 + msgid "settable options is displayed, with an indication of whether or" + msgstr "" + +! #: builtins.c:1381 + msgid "not each is set." + msgstr "" + +! #: builtins.c:1387 + msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" + msgstr "" + +! #: builtins.c:1388 + msgid "is a character string which contains three types of objects: plain" + msgstr "" + +! #: builtins.c:1389 + msgid "" + "characters, which are simply copied to standard output, character escape" + msgstr "" + +! #: builtins.c:1390 + msgid "sequences which are converted and copied to the standard output, and" + msgstr "" + +! #: builtins.c:1391 + msgid "" + "format specifications, each of which causes printing of the next successive" + msgstr "" + +! #: builtins.c:1392 + msgid "argument. In addition to the standard printf(1) formats, %b means to" + msgstr "" + +! #: builtins.c:1393 + msgid "expand backslash escape sequences in the corresponding argument, and %q" + msgstr "" + +! #: builtins.c:1394 + msgid "means to quote the argument in a way that can be reused as shell input." + msgstr "" + +! #: builtins.c:1401 + msgid "For each NAME, specify how arguments are to be completed." + msgstr "" + +! #: builtins.c:1402 + msgid "If the -p option is supplied, or if no options are supplied, existing" + msgstr "" + +! #: builtins.c:1403 + msgid "completion specifications are printed in a way that allows them to be" + msgstr "" + +! #: builtins.c:1404 + msgid "reused as input. The -r option removes a completion specification for" + msgstr "" + +! #: builtins.c:1405 + msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." + msgstr "" + +! #: builtins.c:1413 + msgid "Display the possible completions depending on the options. Intended" + msgstr "" + +! #: builtins.c:1414 + msgid "" + "to be used from within a shell function generating possible completions." + msgstr "" + +! #: builtins.c:1415 + msgid "If the optional WORD argument is supplied, matches against WORD are" + msgstr "" + +! #: builtins.c:1416 + msgid "generated." + msgstr "" +--- 3795,4166 ---- + + #: builtins.c:1242 +! msgid "CDPATH A colon-separated list of directories to search" + msgstr "" + + #: builtins.c:1243 +! msgid "\t\tfor directries given as arguments to `cd'." + msgstr "" + + #: builtins.c:1244 + msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" + msgstr "" + +! #: builtins.c:1245 + msgid "\t\tbe ignored by pathname expansion." + msgstr "" + +! #: builtins.c:1247 + msgid "" + "HISTFILE The name of the file where your command history is stored." + msgstr "" + +! #: builtins.c:1248 + msgid "HISTFILESIZE The maximum number of lines this file can contain." + msgstr "" + +! #: builtins.c:1249 + msgid "HISTSIZE The maximum number of history lines that a running" + msgstr "" + +! #: builtins.c:1250 + msgid "\t\tshell can access." + msgstr "" + +! #: builtins.c:1252 + msgid "HOME The complete pathname to your login directory." + msgstr "" + +! #: builtins.c:1253 + msgid "HOSTNAME\tThe name of the current host." + msgstr "" + +! #: builtins.c:1254 + msgid "HOSTTYPE The type of CPU this version of Bash is running under." + msgstr "" + +! #: builtins.c:1255 + msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" + msgstr "" + +! #: builtins.c:1256 + msgid "\t\tcharacter as the sole input. If set, then the value" + msgstr "" + +! #: builtins.c:1257 + msgid "\t\tof it is the number of EOF characters that can be seen" + msgstr "" + +! #: builtins.c:1258 + msgid "\t\tin a row on an empty line before the shell will exit" + msgstr "" + +! #: builtins.c:1259 + msgid "\t\t(default 10). When unset, EOF signifies the end of input." + msgstr "" + +! #: builtins.c:1260 + msgid "MACHTYPE\tA string describing the current system Bash is running on." + msgstr "" + +! #: builtins.c:1261 + msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." + msgstr "" + +! #: builtins.c:1262 + msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" + msgstr "" + +! #: builtins.c:1263 + msgid "\t\tfor new mail." + msgstr "" + +! #: builtins.c:1264 + msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." + msgstr "" + +! #: builtins.c:1265 + msgid "PATH A colon-separated list of directories to search when" + msgstr "" + +! #: builtins.c:1266 + msgid "\t\tlooking for commands." + msgstr "" + +! #: builtins.c:1267 + msgid "PROMPT_COMMAND A command to be executed before the printing of each" + msgstr "" + +! #: builtins.c:1268 + msgid "\t\tprimary prompt." + msgstr "" + +! #: builtins.c:1269 + msgid "PS1 The primary prompt string." + msgstr "" + +! #: builtins.c:1270 + msgid "PS2 The secondary prompt string." + msgstr "" + +! #: builtins.c:1271 + msgid "PWD\t\tThe full pathname of the current directory." + msgstr "" + +! #: builtins.c:1272 + msgid "SHELLOPTS\tA colon-separated list of enabled shell options." + msgstr "" + +! #: builtins.c:1273 + msgid "TERM The name of the current terminal type." + msgstr "" + +! #: builtins.c:1274 + msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" + msgstr "" + +! #: builtins.c:1275 + msgid "\t\t`time' reserved word." + msgstr "" + +! #: builtins.c:1276 + msgid "auto_resume Non-null means a command word appearing on a line by" + msgstr "" + +! #: builtins.c:1277 + msgid "\t\titself is first looked for in the list of currently" + msgstr "" + +! #: builtins.c:1278 + msgid "\t\tstopped jobs. If found there, that job is foregrounded." + msgstr "" + +! #: builtins.c:1279 + msgid "\t\tA value of `exact' means that the command word must" + msgstr "" + +! #: builtins.c:1280 + msgid "\t\texactly match a command in the list of stopped jobs. A" + msgstr "" + +! #: builtins.c:1281 + msgid "\t\tvalue of `substring' means that the command word must" + msgstr "" + +! #: builtins.c:1282 + msgid "\t\tmatch a substring of the job. Any other value means that" + msgstr "" + +! #: builtins.c:1283 + msgid "\t\tthe command must be a prefix of a stopped job." + msgstr "" + +! #: builtins.c:1286 + msgid "histchars Characters controlling history expansion and quick" + msgstr "" + +! #: builtins.c:1287 + msgid "\t\tsubstitution. The first character is the history" + msgstr "" + +! #: builtins.c:1288 + msgid "\t\tsubstitution character, usually `!'. The second is" + msgstr "" + +! #: builtins.c:1289 + msgid "\t\tthe `quick substitution' character, usually `^'. The" + msgstr "" + +! #: builtins.c:1290 + msgid "\t\tthird is the `history comment' character, usually `#'." + msgstr "" + +! #: builtins.c:1292 + msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" + msgstr "" + +! #: builtins.c:1293 + msgid "\t\tcommands should be saved on the history list." + msgstr "" + +! #: builtins.c:1305 + msgid "+N\tRotates the stack so that the Nth directory (counting" + msgstr "" + +! #: builtins.c:1306 + msgid "\tfrom the left of the list shown by `dirs', starting with" + msgstr "" + +! #: builtins.c:1307 builtins.c:1311 + msgid "\tzero) is at the top." + msgstr "" + +! #: builtins.c:1309 + msgid "-N\tRotates the stack so that the Nth directory (counting" + msgstr "" + +! #: builtins.c:1310 + msgid "\tfrom the right of the list shown by `dirs', starting with" + msgstr "" + +! #: builtins.c:1313 + msgid "-n\tsuppress the normal change of directory when adding directories" + msgstr "" + +! #: builtins.c:1314 + msgid "\tto the stack, so only the stack is manipulated." + msgstr "" + +! #: builtins.c:1316 + msgid "dir\tadds DIR to the directory stack at the top, making it the" + msgstr "" + +! #: builtins.c:1317 + msgid "\tnew current working directory." + msgstr "" + +! #: builtins.c:1331 + msgid "+N\tremoves the Nth entry counting from the left of the list" + msgstr "" + +! #: builtins.c:1332 + msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" + msgstr "" + +! #: builtins.c:1333 + msgid "\tremoves the first directory, `popd +1' the second." + msgstr "" + +! #: builtins.c:1335 + msgid "-N\tremoves the Nth entry counting from the right of the list" + msgstr "" + +! #: builtins.c:1336 + msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" + msgstr "" + +! #: builtins.c:1337 + msgid "\tremoves the last directory, `popd -1' the next to last." + msgstr "" + +! #: builtins.c:1339 + msgid "-n\tsuppress the normal change of directory when removing directories" + msgstr "" + +! #: builtins.c:1340 + msgid "\tfrom the stack, so only the stack is manipulated." + msgstr "" + +! #: builtins.c:1362 + msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" + msgstr "" + +! #: builtins.c:1363 builtins.c:1366 + msgid "\tdirs when invoked without options, starting with zero." + msgstr "" + +! #: builtins.c:1365 + msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" + msgstr "" + +! #: builtins.c:1373 + msgid "Toggle the values of variables controlling optional behavior." + msgstr "" + +! #: builtins.c:1374 + msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" + msgstr "" + +! #: builtins.c:1375 + msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" + msgstr "" + +! #: builtins.c:1376 + msgid "status indicates whether each OPTNAME is set or unset. The -o" + msgstr "" + +! #: builtins.c:1377 + msgid "option restricts the OPTNAMEs to those defined for use with" + msgstr "" + +! #: builtins.c:1378 + msgid "`set -o'. With no options, or with the -p option, a list of all" + msgstr "" + +! #: builtins.c:1379 + msgid "settable options is displayed, with an indication of whether or" + msgstr "" + +! #: builtins.c:1380 + msgid "not each is set." + msgstr "" + +! #: builtins.c:1386 + msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" + msgstr "" + +! #: builtins.c:1387 + msgid "is a character string which contains three types of objects: plain" + msgstr "" + +! #: builtins.c:1388 + msgid "" + "characters, which are simply copied to standard output, character escape" + msgstr "" + +! #: builtins.c:1389 + msgid "sequences which are converted and copied to the standard output, and" + msgstr "" + +! #: builtins.c:1390 + msgid "" + "format specifications, each of which causes printing of the next successive" + msgstr "" + +! #: builtins.c:1391 + msgid "argument. In addition to the standard printf(1) formats, %b means to" + msgstr "" + +! #: builtins.c:1392 + msgid "expand backslash escape sequences in the corresponding argument, and %q" + msgstr "" + +! #: builtins.c:1393 + msgid "means to quote the argument in a way that can be reused as shell input." + msgstr "" + +! #: builtins.c:1400 + msgid "For each NAME, specify how arguments are to be completed." + msgstr "" + +! #: builtins.c:1401 + msgid "If the -p option is supplied, or if no options are supplied, existing" + msgstr "" + +! #: builtins.c:1402 + msgid "completion specifications are printed in a way that allows them to be" + msgstr "" + +! #: builtins.c:1403 + msgid "reused as input. The -r option removes a completion specification for" + msgstr "" + +! #: builtins.c:1404 + msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." + msgstr "" + +! #: builtins.c:1412 + msgid "Display the possible completions depending on the options. Intended" + msgstr "" + +! #: builtins.c:1413 + msgid "" + "to be used from within a shell function generating possible completions." + msgstr "" + +! #: builtins.c:1414 + msgid "If the optional WORD argument is supplied, matches against WORD are" + msgstr "" + +! #: builtins.c:1415 + msgid "generated." + msgstr "" diff --git a/subst.c b/subst.c index 0e3d7326a..d69a6684d 100644 --- a/subst.c +++ b/subst.c @@ -4899,8 +4899,9 @@ verify_substring_values (value, substr, vtype, e1p, e2p) #if defined (ARRAY_VARS) case VT_ARRAYVAR: a = (ARRAY *)value; - /* For arrays, the first value deals with array indices. */ - len = array_max_index (a); /* arrays index from 0 to n - 1 */ + /* For arrays, the first value deals with array indices. Negative + offsets count from one past the array's maximum index. */ + len = array_max_index (a) + (*e1p < 0); /* arrays index from 0 to n - 1 */ break; #endif } diff --git a/support/mkversion.sh b/support/mkversion.sh index a42eb7807..6aca944fe 100644 --- a/support/mkversion.sh +++ b/support/mkversion.sh @@ -96,11 +96,11 @@ echo "/* Version control for the shell. This file gets changed when you say" echo " \`make version.h' to the Makefile. It is created by mkversion. */" # Output the distribution version. Single numbers are converted to x.00. -# Allow, as a special case, `[:digit:].[:digit:][:digit:][:alpha:]' for -# intermediate versions (e.g., `2.05a'). +# Allow, as a special case, `[:digit:].[:digit:][:alpha:]' for +# intermediate versions (e.g., `2.5a'). # Any characters other than digits and `.' are invalid. case "$dist_version" in -[0-9].[0-9][0-9][a-z]) ;; # special case +[0-9].[0-9][a-z]) ;; # special case *[!0-9.]*) echo "mkversion.sh: ${dist_version}: bad distribution version" >&2 exit 1 ;; *.*) ;; @@ -112,9 +112,9 @@ dist_major=`echo $dist_version | sed 's:\..*$::'` dist_minor=`echo $dist_version | sed 's:^.*\.::'` case "$dist_minor" in -"") dist_minor=00 ;; -[a-z]) dist_minor=00${dist_minor} ;; -?) dist_minor=0${dist_minor} ;; +"") dist_minor=0 ;; +[a-z]) dist_minor=0${dist_minor} ;; +?) dist_minor=${dist_minor} ;; *) ;; esac diff --git a/support/mkversion.sh.save1 b/support/mkversion.sh.save1 new file mode 100644 index 000000000..a42eb7807 --- /dev/null +++ b/support/mkversion.sh.save1 @@ -0,0 +1,164 @@ +#! /bin/sh + +# Simple program to make new version numbers for the shell. +# Big deal, but it was getting out of hand to do everything +# in the makefile. This creates a file named by the -o option, +# otherwise everything is echoed to the standard output. + +# Copyright (C) 1996-2002 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + +PROGNAME=`basename $0` +USAGE="$PROGNAME [-b] [-S srcdir] -d version -p patchlevel [-s status] [-o outfile]" + +source_dir="." + +while [ $# -gt 0 ]; do + case "$1" in + -o) shift; OUTFILE=$1; shift ;; + -b) shift; inc_build=yes ;; + -s) shift; rel_status=$1; shift ;; + -p) shift; patch_level=$1; shift ;; + -d) shift; dist_version=$1; shift ;; + -S) shift; source_dir="$1"; shift ;; + *) echo "$PROGNAME: usage: $USAGE" >&2 ; exit 2 ;; + esac +done + +# Required arguments +if [ -z "$dist_version" ]; then + echo "${PROGNAME}: required argument -d missing" >&2 + echo "$PROGNAME: usage: $USAGE" >&2 + exit 1 +fi + +#if [ -z "$patch_level" ]; then +# echo "${PROGNAME}: required argument -p missing" >&2 +# echo "$PROGNAME: usage: $USAGE" >&2 +# exit 1 +#fi + +# Defaults +if [ -z "$rel_status" ]; then + rel_status="release" +fi + +build_ver= +if [ -r .build ]; then + build_ver=`cat .build` +fi +if [ -z "$build_ver" ]; then + build_ver=0 +fi + +# increment the build version if that's what's required + +if [ -n "$inc_build" ]; then + build_ver=`expr $build_ver + 1` +fi + +# what's the patch level? +if [ -z "$patch_level" ]; then + patchlevel_h=$source_dir/patchlevel.h + if [ -s $patchlevel_h ]; then + patch_level=`cat $patchlevel_h | grep '^#define[ ]*PATCHLEVEL' | awk '{print $NF}'` + fi +fi +if [ -z "$patch_level" ]; then + patch_level=0 +fi + +# If we have an output file specified, make it the standard output +if [ -n "$OUTFILE" ]; then + if exec >$OUTFILE; then + : + else + echo "${PROGNAME}: cannot redirect standard output to $OUTFILE" >&2 + exit 1 + fi +fi + +# Output the leading comment. +echo "/* Version control for the shell. This file gets changed when you say" +echo " \`make version.h' to the Makefile. It is created by mkversion. */" + +# Output the distribution version. Single numbers are converted to x.00. +# Allow, as a special case, `[:digit:].[:digit:][:digit:][:alpha:]' for +# intermediate versions (e.g., `2.05a'). +# Any characters other than digits and `.' are invalid. +case "$dist_version" in +[0-9].[0-9][0-9][a-z]) ;; # special case +*[!0-9.]*) echo "mkversion.sh: ${dist_version}: bad distribution version" >&2 + exit 1 ;; +*.*) ;; +*) dist_version=${dist_version}.00 ;; +esac + +dist_major=`echo $dist_version | sed 's:\..*$::'` +[ -z "${dist_major}" ] && dist_major=0 + +dist_minor=`echo $dist_version | sed 's:^.*\.::'` +case "$dist_minor" in +"") dist_minor=00 ;; +[a-z]) dist_minor=00${dist_minor} ;; +?) dist_minor=0${dist_minor} ;; +*) ;; +esac + +#float_dist=`echo $dist_version | awk '{printf "%.2f\n", $1}'` +float_dist=${dist_major}.${dist_minor} + +echo +echo "/* The distribution version number of this shell. */" +echo "#define DISTVERSION \"${float_dist}\"" + +# Output the patch level +#echo +#echo "/* The patch level of this version of the shell. */" +#echo "#define PATCHLEVEL ${patch_level}" + +# Output the build version +echo +echo "/* The last built version of this shell. */" +echo "#define BUILDVERSION ${build_ver}" + +# Output the release status +echo +echo "/* The release status of this shell. */" +echo "#define RELSTATUS \"${rel_status}\"" + +# Output the SCCS version string +sccs_string="${float_dist}.${patch_level}(${build_ver}) ${rel_status} GNU" +echo +echo "/* A version string for use by sccs and the what command. */" +echo "#define SCCSVERSION \"@(#)Bash version ${sccs_string}\"" + +# extern function declarations +#echo +#echo '/* Functions from version.c. */' +#echo 'extern char *shell_version_string __P((void));' +#echo 'extern void show_shell_version __P((int));' + +if [ -n "$inc_build" ]; then + # Make sure we can write to .build + if [ -f .build ] && [ ! -w .build ]; then + echo "$PROGNAME: cannot write to .build, not incrementing build version" >&2 + else + echo "$build_ver" > .build + fi +fi + +exit 0 diff --git a/support/mkversion.sh~ b/support/mkversion.sh~ new file mode 100644 index 000000000..a42eb7807 --- /dev/null +++ b/support/mkversion.sh~ @@ -0,0 +1,164 @@ +#! /bin/sh + +# Simple program to make new version numbers for the shell. +# Big deal, but it was getting out of hand to do everything +# in the makefile. This creates a file named by the -o option, +# otherwise everything is echoed to the standard output. + +# Copyright (C) 1996-2002 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + +PROGNAME=`basename $0` +USAGE="$PROGNAME [-b] [-S srcdir] -d version -p patchlevel [-s status] [-o outfile]" + +source_dir="." + +while [ $# -gt 0 ]; do + case "$1" in + -o) shift; OUTFILE=$1; shift ;; + -b) shift; inc_build=yes ;; + -s) shift; rel_status=$1; shift ;; + -p) shift; patch_level=$1; shift ;; + -d) shift; dist_version=$1; shift ;; + -S) shift; source_dir="$1"; shift ;; + *) echo "$PROGNAME: usage: $USAGE" >&2 ; exit 2 ;; + esac +done + +# Required arguments +if [ -z "$dist_version" ]; then + echo "${PROGNAME}: required argument -d missing" >&2 + echo "$PROGNAME: usage: $USAGE" >&2 + exit 1 +fi + +#if [ -z "$patch_level" ]; then +# echo "${PROGNAME}: required argument -p missing" >&2 +# echo "$PROGNAME: usage: $USAGE" >&2 +# exit 1 +#fi + +# Defaults +if [ -z "$rel_status" ]; then + rel_status="release" +fi + +build_ver= +if [ -r .build ]; then + build_ver=`cat .build` +fi +if [ -z "$build_ver" ]; then + build_ver=0 +fi + +# increment the build version if that's what's required + +if [ -n "$inc_build" ]; then + build_ver=`expr $build_ver + 1` +fi + +# what's the patch level? +if [ -z "$patch_level" ]; then + patchlevel_h=$source_dir/patchlevel.h + if [ -s $patchlevel_h ]; then + patch_level=`cat $patchlevel_h | grep '^#define[ ]*PATCHLEVEL' | awk '{print $NF}'` + fi +fi +if [ -z "$patch_level" ]; then + patch_level=0 +fi + +# If we have an output file specified, make it the standard output +if [ -n "$OUTFILE" ]; then + if exec >$OUTFILE; then + : + else + echo "${PROGNAME}: cannot redirect standard output to $OUTFILE" >&2 + exit 1 + fi +fi + +# Output the leading comment. +echo "/* Version control for the shell. This file gets changed when you say" +echo " \`make version.h' to the Makefile. It is created by mkversion. */" + +# Output the distribution version. Single numbers are converted to x.00. +# Allow, as a special case, `[:digit:].[:digit:][:digit:][:alpha:]' for +# intermediate versions (e.g., `2.05a'). +# Any characters other than digits and `.' are invalid. +case "$dist_version" in +[0-9].[0-9][0-9][a-z]) ;; # special case +*[!0-9.]*) echo "mkversion.sh: ${dist_version}: bad distribution version" >&2 + exit 1 ;; +*.*) ;; +*) dist_version=${dist_version}.00 ;; +esac + +dist_major=`echo $dist_version | sed 's:\..*$::'` +[ -z "${dist_major}" ] && dist_major=0 + +dist_minor=`echo $dist_version | sed 's:^.*\.::'` +case "$dist_minor" in +"") dist_minor=00 ;; +[a-z]) dist_minor=00${dist_minor} ;; +?) dist_minor=0${dist_minor} ;; +*) ;; +esac + +#float_dist=`echo $dist_version | awk '{printf "%.2f\n", $1}'` +float_dist=${dist_major}.${dist_minor} + +echo +echo "/* The distribution version number of this shell. */" +echo "#define DISTVERSION \"${float_dist}\"" + +# Output the patch level +#echo +#echo "/* The patch level of this version of the shell. */" +#echo "#define PATCHLEVEL ${patch_level}" + +# Output the build version +echo +echo "/* The last built version of this shell. */" +echo "#define BUILDVERSION ${build_ver}" + +# Output the release status +echo +echo "/* The release status of this shell. */" +echo "#define RELSTATUS \"${rel_status}\"" + +# Output the SCCS version string +sccs_string="${float_dist}.${patch_level}(${build_ver}) ${rel_status} GNU" +echo +echo "/* A version string for use by sccs and the what command. */" +echo "#define SCCSVERSION \"@(#)Bash version ${sccs_string}\"" + +# extern function declarations +#echo +#echo '/* Functions from version.c. */' +#echo 'extern char *shell_version_string __P((void));' +#echo 'extern void show_shell_version __P((int));' + +if [ -n "$inc_build" ]; then + # Make sure we can write to .build + if [ -f .build ] && [ ! -w .build ]; then + echo "$PROGNAME: cannot write to .build, not incrementing build version" >&2 + else + echo "$build_ver" > .build + fi +fi + +exit 0 diff --git a/tests/RUN-ONE-TEST b/tests/RUN-ONE-TEST index 72ec06a2c..3efcf32d6 100755 --- a/tests/RUN-ONE-TEST +++ b/tests/RUN-ONE-TEST @@ -1,4 +1,4 @@ -BUILD_DIR=/usr/local/build/bash/bash-current +BUILD_DIR=/usr/local/build/chet/bash/bash-current THIS_SH=$BUILD_DIR/bash PATH=$PATH:$BUILD_DIR diff --git a/tests/array.right b/tests/array.right index f0c456e58..fa2ae2ac6 100644 --- a/tests/array.right +++ b/tests/array.right @@ -170,8 +170,8 @@ too many elements -- expect three five seven three five seven positive offset - expect five seven five seven -negative offset - expect five seven -five seven +negative offset to unset element - expect seven +seven positive offset 2 - expect seven seven negative offset 2 - expect seven diff --git a/tests/array.tests b/tests/array.tests index db02c895d..4f5d830dc 100644 --- a/tests/array.tests +++ b/tests/array.tests @@ -322,7 +322,7 @@ echo ${av[@]:3:5} # how about too many elements? echo positive offset - expect five seven echo ${av[@]:5:2} -echo negative offset - expect five seven +echo negative offset to unset element - expect seven echo ${av[@]: -2:2} echo positive offset 2 - expect seven