From 301e21427ea6190bace0656e25fa070a469dc05b Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Sat, 3 Dec 2011 13:36:10 -0500 Subject: [PATCH] commit bash-20040909 snapshot --- CWRU/CWRU.chlog | 63 + CWRU/CWRU.chlog~ | 67 + MANIFEST | 1 + MANIFEST~ | 957 ++++++ Makefile.in | 7 +- Makefile.in~ | 1436 +++++++++ autom4te.cache/output.0 | 27 +- autom4te.cache/requests | 170 +- autom4te.cache/traces.0 | 7 +- builtins/cd.def | 2 +- builtins/common.c | 6 + builtins/common.h | 1 + builtins/echo.def | 1 + builtins/printf.def | 36 +- config.h.in | 3 + config.h.in~ | 976 ++++++ configure | 27 +- configure.in | 8 +- configure.in~ | 12 +- doc/FAQ | 15 +- doc/FAQ~ | 1785 +++++++++++ doc/bash.1 | 5 + doc/bash.1~ | 13 +- doc/version.texi | 6 +- doc/version.texi~ | 4 +- execute_cmd.c | 5 + lib/readline/complete.c | 13 +- lib/readline/doc/rluser.texi | 6 + lib/readline/doc/rluser.texi~ | 1824 +++++++++++ lib/sh/Makefile.in | 8 +- lib/sh/Makefile.in~ | 451 +++ lib/sh/strnlen.c | 39 + lib/sh/strnlen.c~ | 44 + parse.y | 17 +- parse.y~ | 4874 ++++++++++++++++++++++++++++ patchlevel.h | 2 +- patchlevel.h~ | 30 + po.orig/LINGUAS | 2 + po.orig/Makefile.in.in | 357 +++ po.orig/Makevars | 41 + po.orig/Makevars.template | 41 + po.orig/POTFILES.in | 76 + po.orig/README | 1 + po.orig/Rules-builtins | 19 + po.orig/Rules-quot | 42 + po.orig/bash.po.orig | 5623 +++++++++++++++++++++++++++++++++ po.orig/bash.pot | 4174 ++++++++++++++++++++++++ po.orig/boldquot.sed | 10 + po.orig/builtins.pot | 2845 +++++++++++++++++ po.orig/en@boldquot.gmo | Bin 0 -> 120143 bytes po.orig/en@boldquot.header | 25 + po.orig/en@boldquot.po | 4349 +++++++++++++++++++++++++ po.orig/en@quot.gmo | Bin 0 -> 118583 bytes po.orig/en@quot.header | 22 + po.orig/en@quot.po | 4283 +++++++++++++++++++++++++ po.orig/insert-header.sin | 23 + po.orig/quot.sed | 6 + po.orig/readline.po | 133 + po.orig/remove-potcdate.sin | 19 + po.tar | Bin 0 -> 1218560 bytes po/bash.pot | 702 ++-- po/diffs | 2938 +++++++++++++++++ subst.c | 5 +- support/mkversion.sh | 12 +- support/mkversion.sh.save1 | 164 + support/mkversion.sh~ | 164 + tests/RUN-ONE-TEST | 2 +- tests/array.right | 4 +- tests/array.tests | 2 +- 69 files changed, 38515 insertions(+), 517 deletions(-) create mode 100644 MANIFEST~ create mode 100644 Makefile.in~ create mode 100644 config.h.in~ create mode 100644 doc/FAQ~ create mode 100644 lib/readline/doc/rluser.texi~ create mode 100644 lib/sh/Makefile.in~ create mode 100644 lib/sh/strnlen.c create mode 100644 lib/sh/strnlen.c~ create mode 100644 parse.y~ create mode 100644 patchlevel.h~ create mode 100644 po.orig/LINGUAS create mode 100644 po.orig/Makefile.in.in create mode 100644 po.orig/Makevars create mode 100644 po.orig/Makevars.template create mode 100644 po.orig/POTFILES.in create mode 100644 po.orig/README create mode 100644 po.orig/Rules-builtins create mode 100644 po.orig/Rules-quot create mode 100644 po.orig/bash.po.orig create mode 100644 po.orig/bash.pot create mode 100644 po.orig/boldquot.sed create mode 100644 po.orig/builtins.pot create mode 100644 po.orig/en@boldquot.gmo create mode 100644 po.orig/en@boldquot.header create mode 100644 po.orig/en@boldquot.po create mode 100644 po.orig/en@quot.gmo create mode 100644 po.orig/en@quot.header create mode 100644 po.orig/en@quot.po create mode 100644 po.orig/insert-header.sin create mode 100644 po.orig/quot.sed create mode 100644 po.orig/readline.po create mode 100644 po.orig/remove-potcdate.sin create mode 100644 po.tar create mode 100644 po/diffs create mode 100644 support/mkversion.sh.save1 create mode 100644 support/mkversion.sh~ diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 40d94b6a..0e715d22 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 e058bf10..443fc3aa 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 a7b7be3e..398d522d 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 00000000..a7b7be3e --- /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 56bc2b4b..4e28496e 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 00000000..fb6a2eaa --- /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 ff4eb31f..fa2b495f 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 90908ed3..ada19576 100644 --- a/autom4te.cache/requests +++ b/autom4te.cache/requests @@ -15,96 +15,96 @@ 'configure.in' ], { - 'AH_OUTPUT' => 1, - 'AC_FUNC_UTIME_NULL' => 1, - 'AC_TYPE_OFF_T' => 1, - 'AC_FUNC_SELECT_ARGTYPES' => 1, - 'AC_PROG_AWK' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_CHECK_LIB' => 1, - 'AC_CHECK_TYPES' => 1, - 'AC_FUNC_STRFTIME' => 1, - 'AC_FUNC_SETPGRP' => 1, - 'AC_SUBST' => 1, - 'AC_FUNC_STRTOD' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_PROG_INSTALL' => 1, - 'AC_PROG_MAKE_SET' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_CONFIG_FILES' => 1, - 'AC_TYPE_MODE_T' => 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_CHECK_FUNCS' => 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_FUNC_WAIT3' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AC_HEADER_TIME' => 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_TYPE_SIZE_T' => 1, - 'AC_FUNC_MKTIME' => 1, - 'AC_PROG_LEX' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AC_PROG_CC' => 1, + 'AC_PROG_AWK' => 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, + '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_C_CONST' => 1, + 'AH_OUTPUT' => 1, + 'AC_FUNC_STAT' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'AC_STRUCT_TM' => 1, + 'AC_FUNC_SETPGRP' => 1, + 'AC_PATH_X' => 1, + 'AM_PROG_CC_C_O' => 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_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_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, + 'include' => 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_FUNC_SETVBUF_REVERSED' => 1, + 'AC_PROG_CPP' => 1, 'AC_FUNC_GETGROUPS' => 1, - 'AC_STRUCT_TIMEZONE' => 1 + 'AC_CANONICAL_HOST' => 1, + 'AC_FUNC_CLOSEDIR_VOID' => 1, + 'AC_PROG_YACC' => 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_FUNC_ERROR_AT_LINE' => 1, + 'AC_FUNC_OBSTACK' => 1 } ], 'Request' ) ); diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0 index 735deae3..2aa1b3fa 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 2be86d11..39afbebe 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 3d3dd594..8c2dde4a 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 869d3af2..df303252 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 9d141e5c..a13c6c4a 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 d9719b82..5342a731 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 753b18a8..8e3e4569 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 00000000..753b18a8 --- /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 803b4118..5910defe 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 55c8a5c7..d1fc8048 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 e9ea6378..55c8a5c7 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 f2f4e37b..ede1272b 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 00000000..f2f4e37b --- /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 91277b6c..67ca943f 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 584cb8cd..91277b6c 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 2a6b6d7c..559af1e3 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 5d1cfa75..2a6b6d7c 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 338ee02d..1ef179ea 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 d212f618..e545bf8f 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 6fa93507..eccfcd8a 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 00000000..6fa93507 --- /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 c375c1de..17596b8b 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 00000000..c375c1de --- /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 00000000..53e2fe2c --- /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 00000000..3c493a88 --- /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 363430e5..68d66dfe 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 00000000..75163c54 --- /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 5eaed70b..4c2c67a4 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 00000000..5eaed70b --- /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 00000000..3595cc0f --- /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 00000000..c28f1ce4 --- /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 00000000..84b2d956 --- /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 00000000..32692ab4 --- /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 00000000..a59a0965 --- /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 00000000..979884c6 --- /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 00000000..57df81c9 --- /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 00000000..5f46d237 --- /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 00000000..023388d9 --- /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 00000000..3340d22c --- /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 00000000..4b937aa5 --- /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 00000000..e30179c3 --- /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 0000000000000000000000000000000000000000..6a9c77ba25ca19e810fecf4cbdf2859e979a677f GIT binary patch literal 120143 zcmb@P2Yg*+{r^u$|H8}3cI*fIq~Wg~mZ zMnI7zARx#Fai9pOAc7)-xF`Sj=lgxmxi@Kw=%+)tKm6m=aGMWf*{aBFxu+y;IfZUmo&`@$c?J>XUgqi7I35X#-b za97v~_k`!cvG8dq|9^w~!1WeI(I&7K%H0B}@Xmk==OH)={t)gBH>>A@2f!`h5pW{x zg7SAO+ztK$?gh7697W^cTqyr1K-u3L_yODlbJf9~-Xo#Xb28i%ei?2JuZ2qg{cuD0 zYpD4D1T%2pk|-Jv_kt?VJlq_f9(XC-7V~XT`FR44fCCP3`;k!bPJuhYgWwcc2)qk! ziTMw3Fx=o!Pv6#1<|-(Edj#_$sB+H2-C-wGdar{@*S%2rdj=}rpTb?>dvGtf;bBok zbBLxv`I`;*fk(oL@M1Utz6@2~>mKg@_kl7W3ipOzfND}t27dMkuaBv4E9^^wpNAV` zz6vTmcfeurVK^JU1;@b5kx?`Q9t!8ctD&C14@bhij`DJAfU>_9PJ+LM!{NxKUXSzO zD9k57xw{D-06&7N$H@)eE(%cfbOTg-elGAsI2H4jS+`#jcx>QRfsY5i1IOZi!$wcv zBp72p9xB``10M_gRp6i|e_jJsFAIbDtiU@0Uk>~;oQ1pXo4uTx;I5c&348(Whxwym z9-pI*F)xOD!b_p*`z1I8{u0XldMzGq9jw88E|mL+pz7_9Q04rYRG%UwKDKFd`7s|(!F*2O3sCKK(|ikM{O*5|sT7 zQ0?$7I2UfS3>gD+a60@d90uQm)o|1HDB2%Rh9ltduohkqtKi#E@el6s_OUO_VD5yH zAD2VL_cByHuh;42x+j$X)llxPg_1`E{S=RxJ;`)~{#+~ekb0!wf#_P4{W z;p=cK_{YFO%iSD9#k(h*4NGt|dfUM&cOccz?Y%QbGy|Z-X2il=b^&8Cz#)Y@;CNaZ_mr&RLoz3 z`@ru9^Wft={snMn>`#YV!W*FK`2n~!d=(CazlWQ_e+2u%$NTePfs^3oJYNWRf;qSe zJOyq6&xhN<8==B|B=ARYBzl^_tT;5 zzX6rrXQ0A)2W|)d3U`56axh{vw?-!ury%{R}r=jZOwP5}&l>3jN;@kQZPj3xWx@N(_un8*uW1zzO zB2;~RE!h7ED*t~B9CWJ7=NQV}ShyQJ7^-~Ef=b_wQ0?t;sCa%1r@>#rz2WH7kj1bG zPJ%bXiSTVG`5T|^@~jQY{a4`(_%paK9C3!bZ-SCPSHk_^J8-(5pXvQ#8I<{sz&}8R zv-jscJtxAMm>-9;;D%>;KdOhjVm=qD9Pfs;@M)-g3_9Dxp9dw^z6>{nk3ps5g}}k* z_&6{JDjny*3GjPxGW_fpf;@oxV?G zun{VKcR_{or@(!`;`Mh5R63u7^0&!l9`546i=q7e1lGd%a<9KERJd0{`F|6teuiJ+ z<<<(f#e5r-yCY7W1)i zD*RU9$58p0dcBw58BoukhX=q-Z}9jIhjMo*+yTA;cZPq5O2>9zb$QeTr(nJq?gxJY z>)^IGdifm%<^EDQ4Za2Syy_-5cfeZAcfld>BRCXpd9$~xy`a)J6K)32g8ReE;hyj{ zsBpKq#miv{oQe5!Z~}ZLnEwScnCou!_)AdrcRy4;{0S-_Q*LuPcnVaw--3!iy4~w_ z8dUlh!ddVVxHtR-+zD=fhqu4Ip~~;XVE#_vhF|k`wh+!Az<3Omj|cB`_a8yk_g;5- zygg9y-3OJvf5XAB_HJ}UI1eh`8{ug91XTHa2<30w*FD_ja0ccFq3qZBhKD~3&c=K; zl)oRsec@L3xch}r`MVTu0bhpOz+b`5;J=~T#irl%dD>Vw4D(_r_p71$)wxjZ{zfSG zk3!Y=&*6@6oqN5V?E+Qqli)`1M7T9P2P)my!7BJ`sPt}jpQrO6n8ADrtc6d)IdJ{^ zy?pCoHRiLS%IQ9+dVLGl!VwR6zFMKm|3s+x9)jcGXC8F9x;q?*xf3e>l~DC^AFPFc z51jNZHy;Pp4jzL0!gU_<`r04Ld?Zvm`U+G%yakp2%)=i3F>nLScR`i+18^Vs98~(& zd&KiU2g-bY;7_3HVV7@v{L|rh%%6wW4xs91okv~nYz@_}s-WWA1FD?&gNm;Osy?oU z%Fpfa0QeD{04G1@_1^_|#e5Om1U>+_h0j3M<6E#6{vFEQq{ls6=feHq?Qk;uEmXaae!}&tL!i>V5{`gZLxuC*z>nZ4%sV~loC$|xJ|^&D z7-N12s=VF^-1NIXZcT+7W4{va2+x2+;Prt|!eN--h11~Rr$YOL(=lHHmA}_vEgbQ* zx6f9n^1l-94{w8t|F^IX?);3GS2I-jXF`R4J5)LR9?IR=XWd;7tipULl>MV{1YG|) zcV7c*Ft@`4;blhi z23Ei5{cn2UF>ogKSHg|pui%#O4^aL#c*)ymJ=_&@8=MNyfwSR@Q02ef_dLEm;r5tU zL%F*!@W)W;-r;3mpEwfEzh|}+!1ptRDMr|o5L@|q40XB^n4e} z|3<&`e!LS@diRGam&2j_UjvnnJD~FWVR&Bsw)cx7tj7LfI32zRcZcJC<>BPuG|aa` z<^Kbyezey+J}$Jt8JO>ais!FT@l1Tz?UzI4?;*GyT<_QZJccT#BjEn9HSk8bE#`Ni z(i8p0pVvX9^E9|0yc^cR-@{tC*Lz+LE8zy1zXD}{9hAFY!kKXNZ@rxsp~Al%D%~GJ z)ywYhd%6yQ8)9AzRqk16?HQ^*9)e@xOK=p7e&^%YXsCQ11xLV@Q2DzGs(t(n?g2Od z!1FT;PQ}~{RSVp{{vwy_GiOE@Hwb-zXCUg+x_1CkA$j^7Pt|-9gc?& zz}fJ(Q2E~TBd_OUp~~k@sC4`p>iIr@aJh8?)bj^nEgbMiPtR1iFXqodrQ;E(av1O@ z4`&RNeJ51@?}RGP55x0+Le=B`fA;b{0jix{1Lf~+SPQHE;%tL*e=}5g@51%r$iI4f z8VBXS9jYAfgv$T#pz7ft!G7r9ydO5et+78AR>AXv`2nc@_dQq*e+PGlJN(_{!$hcl zycDV)RzsEBX;AI_DX4UA_75+&1yJUT;P&u`uoiv@mCy12^zp9*Wj+HQ2%m?RX7xGKfvuLL-{`e%HN}K6Bw;Cz~b37@KC6Bb1hUl--Sxgh|dg&l)fUA{Wsv| z@FS>pyzXZQm>k;@sy@fTTG$O$kN3dg@HJQi*I9Rf>4oFrUYM7{J>kW00(=3g{SR1g zfa!<3LDlO~foH=>nD2wT!au^T;I`{~I%}ZP*#%V&cR=Oidr;}yX@dc#H)Nsm)e5(T zH$y#t45}Q~8|a(^Rc`0O(eQgv;ro3hv@e~5jhpMl8;aK=PDE~We zHo(T|F;Mx*LAmRJd%)YE;(HS+y?=*$!#y`2VEv!~RURk9iSRE`$4t$)xrK6sCXZMJHcn5^7C%s=xqj=Ufm7{V}CMK`o0*< zS3~)`Bbc9qD(6?B+SNNy>D_T#PuDmo|I?u2t%qu#%~1X9RJbnu7L>oopxXJ5pvIpa zxAXqj1XbP_LHU0Msy+S&O1_QWen7Ms76PAu<1p{AgZINZfsIh|VI@?0&Va+<#Zc}4 zTW}0qZ%2=R0-S?+71Z-5;YhgYPF`;NK-nJ)Ro+iP$&~>+dp%Y`^`9kB?oNgWz-OWA zaqC^YUCe^2rxT#s#|?o`L-niogLz!+&+7wM23{WcZK(G1OQ?F?a>#%vh6h81yCU$i zz()e#3S57v*UK0v_f3Ik1l}6>BGh>B2dH}5cUO0RO5lx9^6A-N9yHARK@C*@D?-)x z&2R{O2+IA>pu*jGxXa~MDEAjZ)!Xw><@_2{d2Tzx%d-*6-R)56{w16SH>mRP=Dv@?sCY-!csdV*GG78~;nPsz3>xd{+z+bXodQ*kPeb*KXq@-A;ZWmX z9aQsCs-Is(v=y+uQLJ zDEs4KJ-ijFKSldEXF`?dxlsAP1uEV*pz<|(qMMtc{M`w+gMWcj;bxQET|JcfT&VcJ z2X}_+@9Xk@1e9Ez1hmQR62eNW&b;O zcyuRJfBPHU74CL`m*Wyxi@6idhhKvV|6?e*H}yc*<4REJI1y_6e;BHK2F~$x%!U&% zp9_`0N1@{V7|PwOxh{v!gesqxq3pMv=l%|X3jb`Va(D*n`TFxcJu{)6pB2ncLzTxy z3q0QkL5+8pK&AgxxEI{%Ag`yzP~&bBRQy-LTKG0pI3pH%`7DEq_Xeo;@ivtEe?Yav zDU00SK~VnAgDTfopyJ=G-rX;PYQL94)yHjtA3~Mi?u$L0Ck8$ixbDH8&sk7<=^0S% z@dBv&eGn=g>n!njHixo51gd+cXKch^Aq`w%MJJr8%TgmV7?tc8P*@cNqvtzSUZ$BR(@Hb2tKtsY9wT?*yy zZm4$uXQ+IPKg!*8LAA?!pz3ekr5?@{D1WCw_1o_T^N*m~-}Vh&kB7kFm@k1EcOHiF zHz@1!ZXQ(nmIhu6<^OG{adX#3Pe(`K-B9D`Utl#H+T{IYKCH!j5>$AP27b2L{m+Cd zzjL6TzYNt5w#s>Y4N&drN+`Mi7Tg(r43&i_Qq^Y+VJFKC2{|4UHy_a;<5?A-48I2uZB-Ue0AZ$rhuM@N|FK;`cYD0%Wcl>4na zU5?L(YPTJ50sKZVuUl~YIZ*BFe0cEy;(-c(`Z4bQ45<44F+2=zUG(%G169tCL&^Dd zO9O2Gc?+m0qe*Tn-if^Kc+s{{)YJGblNBB&>zE2L3iMbE21D zC)7Cdb*OUt5UQLvKFPTRs-Ij9)t-L?RgX0%53qIfPN??30;>If9x8o5g_3teKIi7{ zzz3kpJvznX9}XvDJQ}JU+yqshAHYrFXHNBYwI$pD^H8XA9s`x{rBL$!QmFRuRVaD! z9#lWu^E9vjJlqxYWl;V15vY265lT;b7uLd$q1@G;?)hwnO4s#Jdi#4&?W*<+f4&S# z{@e;BXP$w|&%iUi9nFMlZ#_`$=t4LGJ_HrcF9SFEy!V%hfz43u^4!30z!>wZQ0@62 zftj;>+*%4H-!FvH!>)&F$B)7x@B^rF-|TE}$9qEM>vX7cdmgIZH$TVQ>ETfQ_9m!) z{WGX`{XSIu`+ULcbr~Fs`7WsNe*x7_);rhB;Q*-ia3)l_z5rE!A3?R35nuH3SP4~b zSHT+iI#hfceaXxB5U6~tfO2;!RC&Jwr@*bh?CCrN)?#jfJHZ>F>61|D8hoCIdk|E= zx&o^I-4pmbDEC$8d;2Ir>9J=*rRNH$_W5h5{QL_}g+ngze$ot8{&zshi)Z2XaEA+B zKiCt>{b^9?ehTgm2VLa#u|HHir$d#)%TVLzfQ!AHYM}c4Vz{o{LB(?plwR-}RDa&) z5^taNQ2N;g@CbMdRQaucsq1}pa1iF>q2%3}Q2y_NO6TvO%5D5t!u$!!{`A17q3U;| z%l!F5sQ8+o%5@b~e0M{&vk#&C?{T@ex0O)xG9P-g*zQ8zB7XP2`IU{!Bw7*#jqChrBLPdDpdSiUG3>x3>D5-p!~fK)elEs zG818a|_qST8cAkUMhfaY?$5l}7e+gB7)n9c^hmw0oK*`4* zsQSMNsy%)k#_&&2a%$@vz28lSlE+KoO4tQe{=bH5?|+5L?^ZXtK0g$y{q6yko@OZj zH^U+D0ayiJgDRKL-t7JlfJ(;_C_U&>sOLX~>K8lQ;{Bl&s=O|MhrqX?-0gR(*Yl}R z`F{#39h=_f^|U{9M$#4VAUxR9I_d&T^_byNWfl%%Ae5mkWfJ*lk zcYC{E3{`*2;D&HHRQvoK+#B8iH-~RP$?4xi>19K{?sE7*sC=FXRo|CFM`-wCi*&jSZM%&K(+SAiea&_H@y&Pvl<^K$*dbj|pd>(`vKh}N3gH3R;(ZLxfv>|u;poSF{5us&zq|yh zynY2$4-+2ue64^QmmUn}4Zq|0oDUV=7oghBt5D_lTc~hqp73<7hDz__Q04yuY=N6S z>FHYu)i3UaweTaTa^CH`UQQ*bcrJqS{}xm}M?B^FUk)n&J%JBH<$wLBJ)Lu*(sMRc z`d)#mkL{lE{?r5||CYlY;Av3xc@3gi7Du&v}14 z7OMT<0Y}51L-pegpLb4&l5599wWBAX#@hiecsjR%>X(PYq3~j;d^`YEAM3s7dc(m` z`8onheq9Nbo_nGC*FT`jWA01d?$3ux&l^zT4*Z^vW7SZ4=A6LQQ0c!3s=vMpcZHk0 z?CIDIsvJ**(xaY+o50uMDEK~9J#O=Tk7o%~{#QfA|8=PHdIKulAwTePsDqLtCqwn~ zr=a3l_lEdxc?(|Dx2GbpAXvhbCfarOie+K)BT>9ONT?^Mk+~32q^SHjp^#jab<(kR8EKG!*1$8+ho z3V&bY((gj-4&?q1Z~@G4sr{*q=(mz<590hYT*@_@=Uap{V6@-O{C@@4euVKwp5>tW zynZKhKO7hZVu-DXWZ-8g<1VuzeD@+OY=*A z3we%sGI^9(ZiL-+*nJGQ<2so8f5FXyza8OMiQ@|F^xGfvPvPsBH^jb!>uBtbg8Cf@ zuZK5a_ac0Wi>?&S!hJ2zhQf!qz7X91j{A+d*5T6c9r#<^w{d-z`@L}|`Tnc$d=&PN zbH5b(I_{V8>`LzMUu2>&XIt`Y3FfbI&p(?h-3kv6VL!<| zqA428!^zm)1dqgSYwT9Qp>QeJSnluP`K3I61M{U^`W3i-u7Jbu;$XjA;dB3+VE=90 zED3SSYGelFtvG48Jn z;T_5SPT_t6VO$r&!C5pR*#DmU#t_z3Jl}-thrv7*-iY~hc?iD`vD=>OG|UGP#utLU z#@U^4`>zo0rrfU|?my(&m$*KQ-3Is_$o=QIzJfXVtry&08<>R~alMIq{dR@#U_Jyt zC&^#%dwX~;H$|Qg!+sq1Cvtx?&klq7{W|cU*u4<^%6=O5%dxuvyY;wk!|taQVcv?} zGZpT);n{Y$$zZ3kePj48cE9I(3iEu-ABMOd#qM&hWtbO0{ptgkV|OfWSHPRNHsaZ5 z%?0~t*gwbp65JllwH4;8;2yX`Rfy(sKM)=RFX5SfJ90f4?thE@&t=K)JJ>w{JGsW; z=PaH*&3!A}9qM-?*J8V)JaFH@GyR_C{t@}dpMGD){x^IUVOZw9k46}uO4dldJ- z-`^efe>MO21pCwAu9$Zv-nqfdfxWeP;U)T@9@EUd-a{n>cXzo7`^*fAb+jIQ^yFAyp5Xbkq z*Ka)LJ9vJ4Fi*wq3GDs>d*JhMHrFuj$Kg)D2Cj>_Hsi7%&-8l(_TXlJ?swpR4EN`9 zzYk$QDhK?I<9;{nf5Y>qLY%07Q8(9#*jI7A#eLqLM_-3WVEzm4cjws@?$3kWT*+@Q z?vLg96Yyi6pT%`2=IQVhxC49x#|KyVd5-)0cy=}11)jw7pTU*59SJ`N*Te1rF8#iY zyL++M?`%iZiFqsBtqS%VaQ|m6{m#JsDcsNH+38#>FzYurQ1>@tzaH0@aCbgt)cNS& zn5T2;*MQq8ej6Qz-3+cLf?4<`?vvlZif|tcmb>Hr1n%GC+9HH`I({w*_j?9E&tbO@ zcJJU$^WRr6568SS&;P{zzTE#B`^(_h;C|TGaeoCI%ym0mkf7xYh6Tm>0s6v8#cf32v+OF#L|e?S0r6aI4?xm>>7s^#2Qa zeht^NJY(8rzw2Qg=5yfP@DBWM4gbc|mxIr@;di;d$g|18?$!{Gj2GcoYjmsd*U5D) z_s7XTxS509S(v|ud3W5-=SqH$@=U*d;I!a=F}x4+6s|+KKLR$xFK~T>OTWtq<2!IO zp8eBo(1+kZLfB_;|1F;V8}mZ=3;bOjp6$l7>#;kYtH?Eg>yQw}Z{e45_n7<#_s76* zaGep%a{4ymb--VS^epH8Sh*vtJ7EJ?O>p0cT{Bnm+Zg*z5(6B?vrU6}Ad%$o;~yI>x|{nI=@C&aNByXU$8JlA&IKg{z7 zxi4|A-?LozaUICDd18lu{bu6sSopq~{J%f*Yyr1TTo?0PziY4?5&X*hE3OT=R`UD; z>}!I%`arqS?{_>q4ZHdZzpF8SDY)A^mWBIsYNonb?it`Tbn_4aMBS{S{oRF;C*E=6+AE&jr7&A&%?h zf!}nlSGdl{jeg_d1;Op1-2a4Y0_Lx99mV|zxH&OAKM(UYgtsNvPQgxL>=o`aaC(UE zCGL+1_P>xLes6N!LKuge$^SbQ^WDL`n)}M%?=j~>cujEIa4$FCCG2N{`yXNc4CV(b z{I`UFYT>38_OkvC<_$tvKfzx$*8$kQtB3r~#H?R8*Wa)o4ettJd<}mm2fyFKekpEG zhCkzajr+lH4BQs?yK&tR!n&LLzjNugG1p#P2ZU$u!NbG7p6j+i!qbBLT?lJ$?vIDJ;4jCsJuu(Q{kPyZ6dAuQv7Z$D$b3||{}J}L za6bdPfp8H1TDku^+y}11^Dl4}dDaSJ>~0HwHw^p=_J6@X`K^QB%3mDJmj@mIKf=ME z@V^4fW=MW z`BRwNxh@Ol0fcckX8raH;cWhv82AJHZ0lChg$j`*ELIB&sqc|IuknT6ez;r?;l-pKQ#F`vz~ zFVFN_0LKP5KgPU>>s7AV*nJ*9`v-ShV}2O(&$*7~d9;3az9ZKh7kawm71?}uzOyxM zDHP*;XID@6#5mj2UC6W-T6sJu8p!X!x}bdrwYw4Y`%srtYe^BbV)z<7~J2XexAcWbw74P;8Dn zdP?2+nl^v#+$r;>FXFaA*{q6-xl*pUoczj}0&dL3L|h;vapS7EE8E@Hne8C{m0g5R zhUBKHEn6hYTrtji>Pm%nys3o9$n2KbGC{ICEhUyxdGi#N;!<0or=9R~aVe{~3+}Eh zU!s^+#qChhH0O)CCfUefnQUJbcVxSp+Tv`SWH0Z2zf8l8sVNW2w6+7bIR4O~RG#&Q);% zV=+{7xo+{RcF?Va$bDx|M_1CNzX5GN@wCPwEl>Xmh24-eQ3XL2_aEJ^Rq|NwpJ^R`sy@0R={DJ7YmXv{ zy9;qcQ*)IP(OKvYwGrBVXlv2HA(AW$>lQ7VJ%8T7`XZtsPm@Tkh^-V{~;qwmKe8-$7{R zyV^;z5?CEK=a=UtnyQgzbaEOavUbdvd~f`S20rN zxt4CLqGGnrp=yB z-8Iv(O7XnKbK{YPrtWO}DEj&l#eq%PB8{vyM-x;t$F6%|TcMa=UFgJ7+?{R2YWcwB zB-y%}SsYdFS%=JD7!7RBHTJZ&lGIU*JlzbE-7z{szSA@bs+a+>6q|fdGtuaiIP>;H zb1QXciGj@ONxV8&EReot`cb6*RE+o6NM4L58lr(Mj084}SmO#qkd0%s%N2|r$ZW-0 z)hFZ%pWYh(C$A*7X&E8YgJ|oP4zp4Tqr2q0dfKzyHnQZK$Iw0V&6!L^Z!VO&dv#}- zEBdo4HHb%PH#Q7csuYNU!t$VA`FN8)t&SVI3SG_dnDJGfDjTgR$x1&oMCvEeQ4%ki z;H5LS(j>QB;qjA;(<>^DXV5QDbUM1)a}$#!jH~)T_|C{T-cEgMq)$G%+4tnmD`}{kep`DQOua zQJUIv&4UL;@!Ed!N*(%GOGhrmS(Ll1lyUx{e@Z$pM@j_6a_u3xx)n;HvpHLAUb|b@ z*OkQPd`nA?E|>O_@#DtrRx?2*XK3%d|jw1;K6RUO%` zSknR80HUA4wyCt1sO(uLDX409o9W1PXOsJ;?)H_{@$$T`jC$f)LNayT#IfliN**+o{E-LTfSG)uwTwow-gwarPfln6CV9L3v-$%p+8$w1H2Iysr=GqNX?W z>#L(c?+Gee+>97!psdUpd6k042+pshDJE?)lZ|9devNeS9Im97mfcK^lINl|w8Vn8 zO$~;|R_b0wtF?(;PC6Zfq6v)_X$XlAF~@XGeaU`lQr2)IWiZ#!68jNM=d?(Es;2eU4$8pVee} zf@>A20_Z{EMnYtpRaQ(VBlqk7R|s6|E~wDG1s3wb)*8%tnzd!U0_iBA%+O_eyXolV zrnAu0UTD;$mR}mqv_5WfD|1b9z%O;v8JRi!*I8&KoM1@ZwDfVqV3l}E=j}Eb?n3j3 z8&Sc+a!4P4-T9VK`sMf=`?#^y91lH>zo(ZQ6tkud8n^vYH{HG5bhWK2na(Ijshb78 z-Q>GiOv-z^QuVqTTApYz$Hj?t2C3Yx4lv{}=j|O(p~OTu{Lq0rQEBD6G1rz|o~Pz$ zL5;Lwsi9%1BrId~4yMSQtUcFC5muzRtCt&e;YMlJ_Dl1%ytkXYKeqp^cWbox)IED; z+8qfXjbddQ#q@khJ*T7<5iNhH-3Lu}SlzsXS?NK7Nc!YEB&xz=TQo_-Sd{biwse-+ zR6w4T=t|a&7^q!2&uHMBn0iCA4h2`1i`cR5W*Vi`4^qMuK#OXruXLPJpFLXZ7fcf< zLmL{I?lk3?pQyePS)fSE-c3Rgw3f!|nWiX1EO5{YYz9k=Epbzpa`q;YL;Z0Lt0#}n z&{ynn0sOYICop>Y2PHHw|V;yvlnwyIUD(uGnh5}{Wr51^Zb9B$^73! z&}_y+py{c>{dXnW@BBr<`O=vMtp5^a%O=Y74O=$zR+yQ(#^A}~zA2}st7um3%jA(l z%1kS-hBqT>Y&wIg!D=TRkEK)Qw?z{&Ho2iUp#~RM6!YEPtk+ryb>$G0bN_K<2qMFhEOxoy^__^$`x8$;8m%%XVJ%y zJRzfV`b}z*OqOL=bu<=O^OHiiEF^1Qzkbr}p=%+b5F)ONk~aiAY1XufN7nMC?S#=1?9SGE`+68tMXoH4^m9}3+v>xgCMG1naV6G7j>!7!U}VLMZKusq*fGG zp=ntz3>%sHagl5&BjpMo5;xbeYUu{)B zCF(U(Oe+8dg7sD{>e$8!-GvZB@nzSZDeE(APFO^!bn^sVZsCM61uW+G4t8y!jJj%9hunLP6!|kW%X_%0#OX<-Ie_ zdZ;F?6t1y^kcQEp1hJOZt5RC}&5zur#U;t223S^~GR#JT3g!aIwi;V=o!T&!1~gI{ zd?TGCOdj#@AClwR8tt=}cnz6pUAu3Z0-Kf@6MF0!1P^U-ypYWT+hJ4EX)K;FT3*s^ zrPuIml{NIRDVPe*woi<)f2p>NRTny3c`JpGeJ9AfT~|BvP*hUi_{?=K&ld}}#cIx+9Q@&RJ}Ja3^grVRi&K-Wj^G&ea)IonDXl>+}}V%*H@5-^Cm<$jeSu zQMS2U9h$NQ@#`|y2Cj~fyUwuk;^`^G^B2^!VHVr3a(wjhG^oYF(HhC^rP_OlU6upQ zwU|3<^{^uMU9NOfcQkD+`&6l4#-?)4f*pe^Rs9Q9x=p!^jUbzIAz?iVm$A$bZB&eV^e-(!6^o2^wp&xye>z)3`g-~;KgpP6 z6qh(sv}I|u+!B|JM|Ascmh5_U!sT(ifF(V;oT-Dh#A_>Hq^LqlsSratR{Y0wNF80X zb+AU@F_pz2HA4FH911CmtBOcNXG|hq`5z;84{JufI&@*L-lS^7DGK$`a%=Og$V@hD zHYRRuGgIpQ_?QiBDecAbW~LWR@LA~NGi+kI-}wuJS0e3Z6VrYAa%|f6k~quh>(e8W z)!`wNlSSc3o)hbR`?c-g?S8%7QVrvgZ>o+71UQ9yY-0f)6}mfD>ednf57iy$Jd9_V z+%YU^clt7XhN;H9DRb-SitQ``B)Xi|QEAkOep)60Ob;iR2xZ2!y6Lm)bvy)7t=stv zZ9zYy7OI0uwyUTGD9v10;6!EZ)|=6!tepO2AYk!URs3 z^H>ixRVA;*vkZEFpWhsvMoK1Q$&LvDqRL2mnI@ZA)W=gCn>UtGDfMG|a!gg!eGo9d z+sokFR4hogBpuC;m`ECB4(>m!L>I3}LfKDN*{7Itv1*!di^c4!QalnBQG4g6+K*D; z=yvQ-Swrxp6r?sHxKIAHg=?-^Z$a&|^6^wHR9!1uN%lPyX>y8L^_t1|NeruvVZy0( z=hj@Yifu;@N-?_U70xb>N(>jl(VrGS|ov%DGb?9P#p!I4Dq__&!@zl8Zat|`HDw!v=0d>t;zPQ zLl7(=uPul|yX0v(h?-~^+xIFMja@!5QK{L|@rvxKXn50bw)knR94JDp+hTI0?f%3{ zDPg@k(cN_%AR5lhkVLZT<*mG##olZzYw|z5G$`CrHKD7NZCt%+?8$QwjB{7+h1ry8 zJv0~XL#5X3`K-3QDaD52rK-eQ8*$i<9A4s#l?R~ArHw1g2~0J-8hfg4i5Mtq)f(4I zznu{7V>gk#5zWk4kzg^N|IKZ-qcPvwQ(&`2s}))Y=wqEM`nz?iJtgN8gWjpFW(6>N zy2{R@>dbZPXp5cG^;L{y&oy;YRz6v3Gk>g=AZwCi$+uyD~$+6^W*alT3<1rTdq#O#s-Vx)1{U@(K4eR z*IhvCLRa+ivkt2cVP}7XLmhioMI(z*A$8KOd_Ye@$bG}mDs!#=rDJdOdsE0gvSdY= zHs|Z)tgcgKo^p1wG?`k~$wIV+!Rc#Gq3Q&^tp;T>@$e=OCnyD`e{0{433ab#oX8zN zzG>=@hZsauA9>VI*GWRKrXU^K&f@k8#MRSYR*C4NT$2Do;x$n9a>~?hd7hI9s)NL> z3$V5NU?-Z=u!Y24-8}KG`LiTdKQ1()q&sXDr$otc4X|oft4IQ}t7(~^=1v`GtteSu z4Ykyf_kGf)LOZ2i%5l!r-fmDn{Gb!3*Q~zQOa{*tZCL-YSg^9)LF|K>5hfM+6;_qo zB^B1ahJvy^LwYX(l0Io(MNRlo8&v7f`F>P)`{RBJde7)Pp zCp_msa@vMfaLmUTX*+w+a**!oKTP{AlC-lYqhD{^M4Jh=nq8(coW-|bOr>fv!h{Xw zKE6_CUSpj39Ls5QPVgrJMq0J`vBAV%SD?EQkM+EL<8k)T&pr1)uJm;J$l5F2E3&o) zJu!|rZ>(tzhlUgH>B3h|GZq%~lLNzks@;^N5-V)^ro7e}(QL-d8@RB*Il7!{^I^qG zYGOFBIFEJiv=781o3!+VfRx8D3v{1yN0*@Ule~oS;!`XWO!4kz)q4D z0<}uQ#M?FHu+^i(v(3rTJTzF=C|NiuMw!lvL-VYp@D>=ScayUkI4pM_Th`R866hC+ zEw8Hm*FjjNtr-YqQ9i!^zoz8B4W$3Hu$+lt%4pTt))VL>E?t8tm3mz4>9nIXa#{HT znjLGejxrn*)ykADsG%lV%`o?c{|d@RT`=>ncwi z*{ONU0>#SAkQ3tUWZPyj0WiI$giu+S(W%@u-L~CJn~0L>;^eB9CMrv>D@Kb#V+%)lKtHhiTuqR}hpgzFRqZ z-bwLOWv+xIW1Bw?wOkWTX{2aLLro3$&Ftt@XkyBR;^QoRvVK`E&2YR0#h~azLo_9* zp>ac|Gkuwi_J;;%=}6RTUjvmok*Ifal6u#guSJ^-@V3yIMV|}rjaW-n9=mj2KUr+S zf4YPm=3C{_IvhCEI=D8ODJ2`C?SOE#8W!uzY*$oAQ>QGNwe;Y+g?dqqE*c-qGOqOZ ze5aORe0$ZG;Hc24%pz){skRcN>3F&_s)Ebf&Yz_{QIe!ZWqqO4j%G`nnwp-pvlqnd zosV3WlL-gRpSoy4-LzDBE06L%Z$aXP7YtBNS+kuseZiFaSxU42rl22G=)jbd&6g_# zrM9ZFG8I-i_c-XA@Yzj~@L=jCZbglBC zXymj}@q}^Xc8_NibF6@IZUxmY$LlOiO07n#>aUheKWzv3`0NLwM%AIyCe6bL*TuKYDCYqjWVt%Wa z50e8bNY1e|7>kPxb(EKwwL3x?A;}b;b?9h%*ePIeEc}>tsZ8b?4X}wQ)Vjh%oM{Kv>t(o4yg7W8-;A{g4F{yt264 z%^Ec&o9r=_=Lew}w4heDRB6Ng|9hk5#Wy6bSNb?&t;&5b5gD85O?=}W)$)$QlW!6(?lCy;sB%TQ& z2?=wLI-N$>a;ij(;?tO8qml;_Mk$6IoiyUDezxa}dhLUA3G&OXM!aD5g1R}g=hfMO z?%EqmnmxS5uhlx233MM`CS;ngcdD5=PFt|pjf6sPv4gIPi_CGHiY>T!$t+SOvAB3% z{p>mPJKoyz{;y(BlT+;hs998`nE36*Bt@Ty4S6fDJVvW@wZ`O*yR$&j6Gdge@%|rDNL}S`@wLfEHQ`o2BjYz4bVR9PkQH5`PpX8;oHJUMd z;i7sg&^c4M3G2OKflWh-QcGdd-=dlG7JJ1888dNEG&6KuYSD@diSF&u7Qxw)GoMn*(Ea+= z(rVH$eE!10R&#A*R{vh&k;BHtnRwVfqpJOlkCtfG>_zozQps3fPZ=rQNzvE>BC{Zh z*G|hOMU_Z(^)0r_RoY2Vi)J5Y!6~TZoRqgj1uEgMB;wJ+R^!t;8Sk@u5TCxdt>CD1 z-i755mJf!OiX;WfRR5_+lAol8l@m_V`Sd2Tu|Fx05Jb|dDC6*@5F)k`(OaN;g);qy zhj~wyxMs~?RIlDMuy4U8GY3sd$T-gG4_(l!8oF0;xQY@p*{AZ-K>%rx*hycMfJ$a$ z`Z7haCYsG|8u|pox$1C8IC!R5s2aT;g@VA5 z1!4;`0egu#JtTy0O3&i;w;eP$)LWjMqS7g31+F8=3dUL*0a@uJBZN!WWaW+wl05C! z`x!AGzZgY>_eA!Ev=F++H&Q^biQrL`Nex>g)2AR5z?|80XV+Kc1R;huIoE3l8gJ8v zpN<$5h@Xd;q!6UuRE#Ei$bxzDs_?vwEvfNdm%Ur#A7-Ull-4Mf4b?I zy+#=(qPz(s$2PWUuAmUI@ggd7%ABR9$@8@C5OOkd+$c+Z(kp|Kk&FwP{@AFc@lv7C zFnWv3P>O4+coj-k2;8fSAwIhMiiUwlq zA|4Fo?Z>u~V3ILIwIF@jbxIqoEjd1jhH5gs#HY5^NdWdXg!)OMYEuD)cwBYNW)Ai0 z-)1*j5FGgLW<6zWq6aTobvZs zfiuk}eOZvxxr8cd6h0Xf&9U!-*$9DNqv6luu8HPOnKnzq7|N0s57C1vRHDk%lvXj@ z>sVtL(`UElPMJMt+N`>12M(O2Z&&daIg3w(`+K=mH-oPpXi%hnwSVO0mxF}CMLwPmv%?O*+=sn6H)Aao`x(kV^j%<9Az_QKk zk`7+e+I%Xa!}`9z)~oF(O52lTmKj&=Uu9vqv}8_{e0)n^WYe-y6OG;$F=@6c(#nJJ zyyU9*^*Rtzo0BL$(`%mOAK9`G9=QYQ%M=8&V##Myl>K`gdm(a?g`bQq%>{Bx zQkiqL;$@0|^}&XhAjwsmo}7_=KKUej=fC(uSE)IQtpienquXT6!8Y<;4c|(#TfXDra#O%Wf!izNk!E zDH>F9YqjM`9@1N{+4_1lj;tq;M-mrS?kaone^8ht7t__@`L5TL?@_;Bp)htd)o2Zrge!*-)nJ`0%A(KVB!3^3+k69hu;NArC3%#PrqaaXn=MkQ+r(E{7W(<4st_3-60mQRtPTKkbO4daDYgk0#Cryop# ztjkpdk>pWF#%vHuCue+ql2s#10>_zM{_yRx6_V&^3#DkGwisL!Qg4zf9^|Z#+e%ER zT?<9}zYgc6uQ!e?ap>AYsdSp^&?W%VH5@r{p-CyIQj^)G5@M%VU0SCiC0TMvIfO4xmC7%qJ^t0Y@eCs1p1SXlPLsSg~`f$y0~w>O|5g0f2>2z&YNYjXcpwE zLb4e-Nms;?9oE$-{0XX2PzOSY-ip`_V%|Ax@q*Ak)8yhcxlE%8=X&FY|Kx&K8-tTjS*$C1pvmmQ z^$5zou!4jk#cgr7vsulgULCq(+L`!?7P;nLu@1bbhao!T){86cVHCBuK%Fsa*Q&6s zAL)B@wq!AF{=E9gDy7fxRT*_6uYKuNEC0;fYohXsfT?XhPn4ETQJLn?a9~{kxu6Me z6H1Lw^}QCToQg2`(A@B*s`44c5Kj8ya-;%bP_QXG5A{|`R&_or>}y(->AaRbOctlZ zu&4${Gt+*3wTE+XB8F)l%{?9#FOf3A3txjt^gl|HoGR)jkGiRyT~rrRedMz%v}mEq zv?eD(c+r^k@-)4}!r`S5eRDv4(UhK~h7uW}y^&>lbJtw+F$HrSR^t>grQ1N%r7Eh{ zmiWD=F+R$ohy&U}(3eXd3WJJ5NqfD^l6WM7bCheB2p^4QKBwS>hupj0bZH@ck%he< z--*{-l2p3M1Ro{s6fJAxJ~5!{Xgkl)@O@7dSRPdMm8k7 zaTbDl{30y1w4jX|Eh8l_YOB=KMSm?)gl=RW8wjjQMcb7~6g8jZ1*cx4hoZH16yCVj zXkuXmS&-}%x-MzOQK3ud(=xW^ne1RC9nOMKu@Z5SFYu^(O#>+J?J`fc`J}?MRa}MJ zjXTri5f7$BFadD2gSVh96m-8-I(pIAPM&6tLG7s68&k>a6C|e0yDCWxofc3#eWu-# zXXQvYt(@7|H!ZWaa#}ITF^`(x%kA)zt(2Gws!R;Br~U4axSBI;-k9+*CsM3ReNeT= zHOy_5eogx=n9#<;>NVL=$@I3QfRgRYAVO_v*X6GTVk)ax*=Kw zb*g1wFS#`qfN2=KYNv`zr&emx1FG1?b~^mXU7}Umx*6jY-X#w6D+k4^pOR$+Q;~&1Q>6YDFJ|FY}Abq7YaZDgfB$N+k_)}SivkXeR zIzR8Bmd^-6+cIZ78B8tk}cd^q#_$+QDCJsM)@ z&S+6{IZlW{}QAc1a#uY>o(!gVYco#ELqbYs#?|ZhB=Q8WfG{}brc!CCza># zG+5h6n}$hw23l#)RAo>m5!W>8R4Xo}!MNbpnlcIpTmBqa(4v9QNv*V8XG}zwd9+Dr zGI$SLTDD6T?Inw`chy`k6$bCYCVArrnL_!Llhx;O`r#?wYpY27C%Q_i6GtVc1(cMA z2HxLb^a^%K?7n7dZNnWW516WTgii$rFUea&{UlhiC<=X|lAdgT@`4+67q#{ffV-g8 z^2k0dqf=DH@G!hImbO@LuMH!rtnF*M`9E$CMGd2>)KL5d$x1^tT~hBM4=+UxnMHke zu~qHK zin$Mx*nM*r-&S-`Rmy*AD6vc$USbZlt3T?&Yr9QB|5{K3Z*6lpM2^QU+ipCV7=cUROVzC{wNCxXvm;egyzMh zxrY@1^aC$u`S&FuQ^_PF87`F{^#NCLSs(6^QfK9uV+S{B+O{v?A=pxd)6!h zCpmm=W}7)S6fYr$pQ#F49P)LiDbQ2lzzQ1 znf7_J&^AW+8Xv3g7J$T_w+D*d|9Xb?5WeDPVj@*!W>2?`O@g3FDQjVwKADTJEf9T^ z3{9~7kunw;5rtWeAf#XwQyTOgo7FDz8$c!6HP!Xko`WG`HinMH_J=cVlfkdH+s1k)?(eUY%n3y}&SL0wz5LHUrPL z?iCg+)mCl2tvVfW!xD+DK?YYrNN_}eO-_UXK{MWJ!BeqorJsf^m8bVJMU|YNidaY_ZJdY|4Tajbx z*>^OOBj$4Is)V&2Efj}8eW$WB4e&s{qd+GNV>p4}33=uBmRYQ-MmRZSF9IDSw zWE4Ap6C>YkGk*G`xnlL0zYXHjqot5cS-mz(6Qf3aEknrr;wFB2TK%IXQWvbTlCfn> zw(UWp!n-74#KYP??_#pavSme=@Y` zuq1!YPl@tKDfhcV4HE3NdRdGF>Fuc*;D0KRHk1dd>)+@_Ah~Fr@vtUJ$=$>KqNDa(pruG4* z8gpuk-3^{pX4~2TuXw3ULd{l}IB4MgPQja>a&cF9C;#)FF(sQqBuE`fy_JruLkO1S7N%j%iEsbd3~EUDP>cDnCEw-(Cn%7Q z_Pv!5S96d5AvsD@fv6?*3a$KHb?6_}L||w@?B&kH1NO8t{=f(O+;O4tXoL}NE2Fcs z927{Mt0SoM#0tNkHdF61f&v`etNb zSD#cY>A8S(B(JDlds|t@8B0hx9k}h!$IGx7tgjO{vm_Edgt|<(@P);$VB*SCnY0rtp}EDJyl}$!%2DS<%SX@t5rRX>nzHRF%lz`Vry7Xcmk|~83RiaNN6(J?fGB0&V zUp?S79Qzvda35cWL`^=~_>adYk_CojLK!lf7&X34(!7#g^7NR1q^uQ*jef|vC<%og z?MDUl#Q@vpR3r17aWxUsefyKr{k*yz-d^{;%rND%_tNcfokmG~hpvcTuFDe7vt0_^=M(;f;op0mNbmU z+)~znk@M~RM{xFKC~SD_%L=}uS6&TeYr@u7$$7r0zuj8WTkA=K>MIjz{ECsHtCkKT zL4-Dfm3+sVR{rnaeeIuuSfVA^%5_;z#H>Wn@ouS?x@u1PY?3;?q)h_+Z`ewLjq7bv z1?z8q=+9bf$kXm>r^7?v`=xD|Atd4x8x<7A0yVDCAW zPxB~+sl5v_RToFq(La5o)0TA*Rh)3q8CT5-D#J=5uC!wxtH=T&lGKbumV4|KnoPCXjF>lm=SNMeO%cmr8{S)YcDZ2l@)MwQc5_VFXsY z;}iouGCh`?h)nsaiTX|qG#{UGK=E_DdDRg#lk z7J)Ugq_)t_{4Et8(GSTdQbWTkD-}M1^<59?DYcasL?-FISdHg;hbdAoX7?n>1gj-W zQu#21>v72$9u=DgBwB&a9O}rv?}IBq{;+p>25cuZwftZHTNPF%T7>s{NEW@LRA4Zr z3N1KeYc*6)SvNBQ6!zIWC*rB-$N#K+NmgqQU$SF&-0RfJMuH=0fXU(<$A?+%leDu9 zX@b$#rBApMwWa(86juj>?r1};#B~VM4qS&L)0|d~TKMdUR3-a}h-tpbcW?9rwb1@% zMN*IbIOo%K$;yBKj;RcGMHyY+C;1oOJC%h6nC^O z?bKVH96spPM3pkUG3A!NX9B|;p$cdUmHKJ78rJ9_iPm6$F4tSCsd{P#eL7KcbYvens4w5B0foPlmF{_FicuhU#o+*XNuRXyrL@JLaYQ1Thi2v(UrRK*-1+F-m>PA|i z;BUNkPx8K_O?;^*TH7cmf#qYge?@I;9^5O&iq}^alJz|aw3;X!i1gd;rWGhLL4DU! z8M2(^a>@0Iksm+k0~BrLi??abv!_#`8mGBPUY<)m`w<$(NDXwh2%(vuY70FB2^ADH zrQW{-mUiwaEO_%MJsx7YG_}fVyj*tWZIF5|2cJYm`g)mqCqut&wPL|p2`1Bd|Gtdv zt!ZYt}TSw60ag+QhP@5z440Qae>DlW&qw()3+h|)X(d`fF17DvNV~OWZRC=c$fiCaSsAd;k%Z=nNR7Sp@5mBU4$2b}3MsTB zsipeVmvkqqC|~VltrI!M%a#fv-QSY1Sg>d}%^>wY9?!^nDs8Aeb;YpJBq1!{cCLgR zwB%Rjnlmf%%?u`ChdZ2^V~DYroh@tnyNMch)xNYlr673!N?&+I>*PS1J+IXbuI zJ*ttUIQr_6_)ZrDvXmN1sO@i%R_146Q`OsYSVvNPNw-I4y8tYY;nfPG-@Qd?n5N`2 zlF)^{#)!xIq|#w$Cpd}CeXkEJcA|%4_VxjsV&1(l?fy#zK z?_T;aVYaoCFR$=6HOaEGARcvjAw{)myWk<`>7qq9Wz5L{P2Cg+4L}hyH2uHY-nO}_ zE6MlV?{0{Q`w8xwQ$5gzvW^U{?ua|MsBRgA&222WNR+$Ab_*d1p|OxCJz%J)=;)6z z9WnLg`jgD>|If^|_BlEN?5a^zVQKHRa<7M6`JB0wM(KqUg*RVO@!dTRjX8ldgbSN| z!*n<>skUOd)k$fzC}h2GYmXAXpAdA2LvE=Ox6G0Du+VGYF0Y2C7#n|2$*qB9VnS(=YJ-HkC?d$XqBj`n#+DOtd$c zUqHeuY1xW%tea8!oTal&-QYt=@Y{z|D84RXR)wF|DF$P*SLRP2`$*(ZF~4XGhwBg* zLft5sWE7EUNMlaW9YS^M07m>vF@LqP=d7ZMCZ!(?a!PDT4d3dnu(+@S8h>s^Zi+5% zn%m9>QQ0KdL^k2^!Wb&|ERPP3TzQZ~;#D}U_-lRZ*)QiB&>EeA{P>BX2+e=CEgAE*^_2}22BBm8h z8l00!;oMx~oq9=7b2FXov!QMy3B+f?<9vyJBZjas@a$(qjI#(ABondo7MHQ(HpnY_ znl6@bL-2s*#(;`*h`h!K7n0ph1R7c22{~>8W|907i7@PK{OP0`wH9RUVNv7RKQ%(E zG0A<^)*ll7=nso-UAXR#;zY9Y3QtJ7&v}0P2~DhXB2{4rHZvS4{UB(D?$r9DWw!Ip zFk%-C#Qaqw(}kUanme3AWC&f_9yHur(P9++aa;Um@=TJs$3zfyT8SilbS7W<%cZj+ zdo+JxaT2XKrt`5>JAetwrrvz=VEro{n)9BZ%4 zN#_F5WcZJL3HDJ8saZ$Cos1~6$Php@5mrmZSVP5gqv#NTYU%e`#y~4Gb0|)w zEi)gHZ$TCu_%H+u@w|TbIgl1f%Q=${P@FK4Haj?23a`wL?}Gt47c6HhQ!DnOE@ID; z*QUE40Yh*Xz?iUYP4;9hTUD-^^D(EC1(P9GsW0v#8K&Q)b8 zP{GLrBfFG(IIcM~rxf-NvotRJvMG75DfwVFseBoOMCjz4r6ttLahNMDMIRljKO{{FqyUf} zC(h_vEn#pIP=!)RQ9V&rPK~k4ii5oRwzaDBIF_B5$}QW^Zo}1(?AUe-2|cvkORSr0 zar~UfFF#U*h}+_94*~*hBB;?a+lN5S%Xk<2!vu9T_c+4dtQ3K8$XTVT9F~S4l+Rd5 z%ipl~Ini6MEOo2992}xCTBAm!9gGxek(9ME$7yra4rbs=Et~v4eJv<&4jlhuA87I7 zsnP@=IHF^eTM;_ARz8UZzHsAAj{=Pptc)+6NN|l7vh{ZKTJ0LYHp*4{PgP+Nyvc$e z8fyqY6HY87^z7XT07IKPw<8CVW-%?7>iL90QB+j2%Z$Q!8c-;55RuP8wOzbNdGmSe zf&CLD^b`q+>XIv}7yZrZX28+%i=x_dnx+7Za8=tuvzW6a(>%HcqpBJdS-+ZHf}k88 z?7vjLUHD8S1H@=e|Cytt1Aqh}Be2tE2^-<1sM@FkH^%H^0t59S`~chhB)f3-B%Cw| z5voAghKs`E^&wXWjC+Nz@RIN7r5l%w z668YYj@xIEl<*kiyUksJz95M4pHa#>l4pU4k50!*9S@QfmbV?1l7vX;L!^MxoA?3O zDxJXYu%q}1!3|yPiPB87~_Z`0uu5=dN1w9U3Mw7;09Xj>zj5h*Z;MTb+oK!j{7~gbJ|&RSwjC9@W&qYTCdGFDw|s9808HN^bbT2n|6F~8xR$O6Yd?ccjO=B zFMDK=$9jNiVs0c61v2_v0>m~%7&aRqAwtz{OyonP6!V$sY*HCf4AnWpG%}9Xr&Th` z)v1}Dbs0P+TK}Ugu*X14y4gMyl&Y3m6k_or#KemZBz3@o4uHJR#%t%{w;-+XcY+0s zX~CUf5Q$+naC_uE^btWKjVD~yY86ZFMA<*9 zD=!j4L?T_kwyWGKY(NMSaRSa<^$EbYvSkkE+0L$*hs0iG`Pg7$5~YI|h19f}BG;p+ z?-*`VATJ3WNHScZo--z*p&42nr`5F-8;aNT1UGh-S;Yn*%Xk^ZDJ#XAmYa ziGvp^y^VT4#NnrM;y4yAU?-j4CU68P3Km$>AV?bBtcN6sL^TJeAD}=$#^Vwa3#Z~D zET9=QsF=5qi&Cn)WF@7ohXhj|vu5I>iH$k(Sq3i~`PFhSy!s0cG&OyFa)%j7Hp|478>M)vy_s_#59W8|Ffesn#gzQrZo*o5@g?2a8uMUS{GL z5ipcsWpYVoQB%1ZWY~+a)U+JNc2LhSIbR+lI6vj67+-R<)VmWAIaY{T9L(I9=`r0E zZBV}GRQs9UD_x2!p90%lWOa^?Tjq`aD?>Lc_8NX7brDP#qt&u4vM-kHqnuAtksJfR ze)sFuCmT)l(8+_770V5gINI?2EUz}If;DY)yYFSQ#Eh$K44K?+DmwFrcAFJnR1jg@ z=kjJ)K8YHW{K6(X?+h)DaL@VPv_VW!oaOARBO;j=^zh>kLncc6x~>|>l0W_+k8wlw z?sG3kKL0)}mOY~oXCe7S!qsY$bFlhH9KnWeC&6hz^d@K%ArJx}Iskdz+j)5`wHCB8 zN8;Xj0Ma>Z{$dcHlLP^+S zUy3cJh>qx0nh zgOxDV{A)({@Ce%|L>F{Tjy5Rr9##)Q>!Yyv_hw<`0rw&k!a#bkx3Els)y!nAkpM9Y z7Z=E@jY&Op>I;pYDh0+c;FB)<1BFJg08gngCAsm@{rekhn>5{IOP@`D!UL6(5}`cs z2kB1i_6!W$Q!SF@oeu_@FuDNUtiow)Fbp^k4nd|N6mo>@coR9V#X8e-t!8F(?rlYZ zWL+Y-%N+k~ihht|9vSs(z8)*+K?0FLjWvzHm)9@fo#I|P?7DAAo0>RbXOpss>!TN< zsthxtv@CV&Ab7;S?!YG?a0FlN@llGghkGy1WMNG?y)3u^%aSPP+MFje(_my)7Pb4CjQI_tTI*j zS^aHPH3TtCkQK&d{I2yR$Kc5I$RUa-lNauJG@uMR7y4Oj6;aaFtxs0}Ks_Esyo;tn z(XwERjsdz4BhKV5A*M!Xp4?Phf>doVIN1sPuBv_HWwK-PRut-XgCeD@<4_$<)wp=a zWrk6OHV{bkO!0)U!RVbdNH_z8M}%@SFmS$X1u|7&;FS1r^}&6Kv(monRt=%KK3=f$ z_UnNVnUd!eH%4_A|1b*2*NmVAnRYBJm09{NVGD}a z2umMA%h-U(*2!{|CZRAYrJ0Dh9mE&5Q6rFkG16^=iXbJ#W`X8mvV+jgbpZzVedQ_H zHmTL7TL}}u98z;$Cy^zw0 zLuI@~v+R297eD&;suydf8ONig0W&5i5)}m3BI9LPw^5v?gQXCln45j!3Pb z3t}$xR<(D`Uns~wGTA7r!{I6ZFQiu!9s7$8w8=egfOVbz@Slu}pu*F;G@|Z!Ior8v zeAHq9BMZjq_&pAOhD@v1Gd~+u=@E>TA%p;{^(pEJLLOfc5>QSx7;-I4m)%<206Xz+ zLJ;wCyrv0-gVRgj&~oCD5oz`>qAAU?W~H3FVZH7yn54l5PvhJa3_8PvJo{#wFVZAc zLZcy+O2#cz(vxk3ZnGj2zcG|eE#TvlZp%koRQsajD!q^hNouSQ$d_W*e9k3)v!pxn zp-H`_*NsMElo8!D$&}nd&V9n<3F#-xxg;n23NCPGDNK_PGk4Q1=pg<``Hzv1?Ef#0 zqa18OQfRt;tHIk+dcmP^cl-Y8sBT1eXU)w zp;t8OmB%cZpl@SLgQ%1HfBKpj@RcEK#CealcCi)UMVf*$r})b%7!SBNEkyC0>- zPLt1Fy-Mz_pA#Yd>rY081Y|W^Hra;NGP(k89V87mytNjw>FDq8bVEkTUZr-i?!9`~ zjKmlIOWhonBQa90#dUwlP+9% zqxb)aPh8sMGT5B?a9@9T8kaQ9$Hd0;Ie+kLmyUCI+dh+Reg=GDKE1M}!?I5Ti6@_A zRYgdig<$A;9XTEu5w|%&vh9*)w=xI}FGM_KY@%*u5&rNzNj?&GILTL52%WkV*awN$ z;5WhtF?PC&OQ7UrG1-pLP5Bu*YW-m7qrEHN5JK4pdu!$9 zmAi^cIszi}^fpxV?b&Bo0}qbAu;>o+x$|`M{`7zLcKR~5vFREaJ_;1NJ^7!{56-SU z*%Pguesj8iusi*da^lm?V>vDNr*dNc^ZwEK3So#>9v_}lad3JcJrm zNVL$KJJ*jUzq&KIb>oXG!++E1hv;Il5T%tmB)K&Gp{lDlWs7)yWmw|pU)KJxvG%`3 zf0>UGk5=?}Ec1ll1dg_}bp5&vPQRJlxS>DF4|?mSDmA)ht3{DzM^tpCCPY#I2t>`J z&=*#NaO&BA{m1|FKfb&5id_7iv;Xnk%~${RAOBey8}eVMcSBCG6X|9^C}SkQCIn5q z03hx3%B}h!B0XG|Ds}dkDAU(y4HtoD75IfKGUoW`oq%(1FaEo#A>R|niDA@$sENlb*@(Fsa=)TBreQcTCz%g zqKh^|YmxqG;~44;Z9};W@x)Bc(jVPiR!#^I!kv^E#vVB1@dy8*N@&!bg%2$)ja8nS zzot{uaHNskLuJrm;2L*D(d71*(})PDr6u7<<=XZ1NF!6*8SM*5Ari=r%I8i;%-$GU z>h?ShBc`cVk;d$2Az#!IB9w)S%NCvB2Q*wp>6Ku)B2g*M!%W;%8w+NcQ}SonyhOlX zCH67VO%czq`(eRnK%;VL`FdWKW(P*tLLdE=kewZj7~gBI6{250ntz)aO~NbmDg%f3 z1od`pgq0`3BAAv)D~52&dCPI-ND7$+2#WFHVf-I83;;H}T>@)ZQeZkhcr9wQGIG?p z$442*swuy4pM&{`(`4oklpRYY0Zl;r>$LoZQc3?N6IvPI5dexcv# zwLJNEA^yG%#FG7>;J%0TXm8(~YFPSv2u(g*UBAcQJg6S=;Lh^o-}wKZ?<|F>*9p~2 zrmJ<|(T$}ic|Cwe-PWuRa7aRY%Y^vXzZMmV`YY6Fl^byB*UOX7C?v~yjN09qGNBsP z!7OD)hHxl$Zdm&C(*q*krqhF6b|{L;2`zdGIF+Pk62O-}rTLPI7r|hpSFn*-cp|TQ z=~L!6<^R9^E&u%PcXyVDrRg>7boj5ZRNJ8d@0l)7K3!T0I{^N?b4)uhGtSDC`>O7_ z^-iOP>iY;4gWg*K0sezyzZDEYI=%tW-~Lu#WX-XvTRe|D9BNM-slX>ZFpZGbBHx5U zt0wTU#Is-X|IhgUHI4fYzx?VB>#IaLB0LmWQNIsM+L2q6zyEvV&gTu2o=ZB4cfu0= z_PH&0GE&XrRJ8i@pXVT?svmEedw|eEya3_*wWTP3(v610()ZslwdyGRwY}t&vB~x4 zsA#b6@1MtOX*m3~19b`yIPfvDiE5|n&f6DaG~9!u(jQCTA1#UHNSD?h=dVnp8Vy2q zQhfgE#@z=G*t;m5z5etYZqQRAIVp}y-=8e)P#Tw{U0E_^b>rFD5|@!3{7Fu+Lxn~1 z=*^PCo_y5&;NSYm`qxKKhNay-q$Fa)_9N|9;?Bs9&U>(k;Xo^dCgNyPzSJ!62Xt%Z zVyk5~7}F1dZ_s%&(J3cXW9FFa?_TJ^n?2`%=}r=0 zR*<2VBKTPoZkCHEtHko;(_2NE)igNcTz`AxF6lm<>26OUR9`&+^6|@GUV;0ZDb;== zEb{j3FmL8C|E5r<9V(;t0)+qTBX%t;%prJx4!!?^Is?O!koAVPI0a<*HVg6Renxae z{>vMBcH z<&Z)|%vEsw;^l2y%obRuK+fiaB2y53aOHCy;)sDHzIM^L{fzC_iiyqR0w}3M0&vm= z1n(9(1VrM2F9)WPk3Gj)3xP6$xd>=^F(jnd`3T;{4Rf>-o?X1!@#Ul2YQn?=GvDFD z%E_W1znj)VVU$+eDXBx-_504*;oD_u-{}8S1%Y1z$ts4~!B`6axOseBE54r-w*6D% zi6n=WMRS{~`puLJHzw14ev_22k9A|gB9xRDd7ihRmlPSv%!qjQ`Q(sY#I=T}3M--H z`kw(QRjgkID$atmrQA$O8}I%2d=JUGmP;1)3JYUq&F*4Nff0|_h`CCDq*@q1d8q<5 zeh2+oKhF{G_Gl%ErnmWWsQ3D>5vv~9wuJM{$aZ@64o%u7cooi*gkhrbLJ~;z(0}oX z_$>KZ8_IU=A=W}hsVP^1cjOR0L5d3ytf!wog&Su&) zFN+#AIFD!BkQb?t3^noghM3zGIdtwyos>u~d8krQW&s_aqL}9oGB#=WZe5o?%CsUg zp~T!Y@1#j?7R(7c-ys(PYHn@JuV>mIYd@Fd?w{7?&1{>4c9}{whss78D0jacLix%iT??a4nf!liI@h zrTZ&2B!6cN<$Uz&bR`0(OWC5 zBEtL^YnyvNTsZ6+GA8MFubv-s>8XUrA9IN73;VRGw&1SvtP^0N;#N}8AbdVSlB^Qi zqxVC5&%z~u$9>;+BPC&BC8(g75mh5fk!&FZx9P_GvMZkUeapVFaM+`TJKp(G1$Vs4 zn|+8{CI|Zd9ORM(kzAy_c+i_4s!Eh`#Wd*8Y)>ZNP>!ncUvY`LBBN~vB4=Dk5KbnJ z5t>JibNlj1`79A2>klDHt{+?MgE7l#lSv`Yv^>BwK~=yr7u(3@E>)`E`Khx}YZZmL zoQ_p$*L25*%~#uRxtN7&$D}h$7(twf;{^MZce>`ibNR4ApKczV{l@OXZ#2(6>DB0J zoPfQ3I|(#&t{!{eOytW)@K9`jE)*i&n$(HWn#c;${fyGKGS=#X4Wz-i^qVuA@?zn9 zw90L{L~(?GU2G$%Ym%a05GuQ6D-;-4=5=Wf#NF+u(n^O93@4;S@DnMhlii$56qD6j z>SrDmAm39HLwq6G;iWEakKB3>y($0&K4ii7@E1qDvUH#}f~u_khtT%;ng8Nq3il({ z9u8c05%tJgdlEABD4oRP>M8QuZV&p_^vBCTEE1`GFFzcH_8;FBwZU5=K9=)8ytu0k zMX@mBVusL2n^1_~YRjr~?GwaJ6B<^=ZmRlga<$@DgpH>d59%<|MWDM>F4! zx-43E%z~=33ajbYY$Y8%(sq&QSJahY3OoZrmNTMJ+xRMHcQgr;O^oN*aej~1HG_^E z4Pn!DP>sYHW`Q!`1b_H2Xf9WUQY?&PmfmG)X)Ifz zI@nstQ_ zZQxL7LV`V;0lWQ5S;RhCuZd71paaYTX%vr=8;p_46fLq+G*&TFFP1aX^cSjpAwYd* za{rzdJ$~vC@{9!%HpM2WBvB+6X1DX1(RBp$Ze)bjUJmSB7^8Z!VQMHHlnvm27{Xka z#vZ9I7paYiP&M+I!9Ktt~$zx^xr^x8&8(ZN# zD4++$(jw+Ke)`}zB(h$_4(t^1rFQPLBYfcia#TqH8CDY??cv2S*L zJ%hf);1-T=?nFfUTZ-pOYx1DZ_4v07pDu3uyP39Z!!1acw&QaEuCk9WaRMM(D+*Xq zMZDB;;P60Wscnl{UDvPCm>illM^{s-1NoxlI@xmJH;{fX69D(JG6qoY-(9=+U^Ano z^y{N10ZAB2$Q5WvWRony(r#LANm_@!bi^k|Q+zfy9mn~Lt_sZ2z)rFa#j|h^g~5er z5r`#o(D{i^T&EbFCr+6~An4bD}T9>~9Q{n$JSU11Xwi>q$I3w{3fo@NW1HY|V z=Hfg((ts6Mt}QJhrJOm|OQ$59?+aE4MmhK6{krtLNGgd-Ct0V6N7Rts&P^tCTfeDg zzHQZ~oSaK{W#OG{e7*MY;WQ&!)0kWQ(UKt`bUbcBh(rB>f*1D^`MD*+y-iX9adJ>8 zGH1!b=Q)KCT2I6P!C2H&BvHtWnBrcLyB(!&h+^8Wo*&21eHn=3L($w0Vr96hdt@`h zJro(OnoZo??=oE5xkgcJ5SPFzBw&Yy4N5bpM<%OXzIP?#YiN=Y`WYBc{>8!eWZ*IL zSEcOut(WWRPr_=J8H@9eK^Mgsw#SDDTv%a*NkVX~0(z>6oQJefg^YS6M&1xj*^olQ z6~A@dQQh+HbmA{UgkD?$=_=#JSF05j*({MOri?7nu%h~-t6yF0C<1X}2 zq77rV87&lj0ei>D$!%+@3NUUKww6SI_Khgqbnz*Y-?2o@6S#OCU{S~s>h*z^N|=)p z&W*pEujfCa!oW6y&A+gbOHtQYN9W&JX>E5rFM507Sz3r?YfeM*`~XGD=et?|7|+5F zRMS4l{^VL9K=Vt1w+@tbpU_jlK2mJohyaw;ubGzgJ^f#p&F!mF!#RCQqr=3#AM59* zIuIRj#D{64VO)ruias3K#sH!AdEWjmNxna!vzFBoEzHM<%gPLqjSzmU_l#vXx~K+G zCS3XfxmZN$QdT4iT1=;tYdZlaMG4F9nbrLo+}^w4HfWB#|{P06BOuu$iXHbvPiBLi^3Il}%nk!syZ1E;xET!y@`~Sp5t!X>T$=5_v;bFiN%t?#-foQMJ;7Ifhvb zNwduT$!C%aXYu1b?+Ms$INWMM$GtL8dJO`Tfydeo{>)Oer$r>Qtu*I`{21=?&qjBP z+oVH$u2*Xoh|^+XKPwpymizhJsrE5>ej~@Kx@dE>3K6dOEpwRgjufDtfZ6@$DmVdz%wu?e# zX3jC0ATlVr8c-{e=>U32m&_R%W(Y20>qI|38Ky_01OpW2EK`zkCp7Gb$L3L`l^}Q2 zQ}W_}HVALpMIfw2Pj&dEBl)>N7LNt9D1@n9DWKYEL1~k$N^Gtxs?>6nnk5t6;k)HQ z7X-=xVZ$8alXnK4WR&igTFT6|r`YK>>4ljjn9G1BooogmTA#xMT_KQmB?P<^=#f*f zcpsWv=tlZ@ywwnvhtGER-h6ibZ0Gf#&v#$npt{~EX|W0`H8YC30`wHNNVG`hL!?sI z)jPpUVN5D+DxI(pfZTrxJinDhkRIsv>UYCxPg)6)5(X3Zt&F0loH5`ju&jK-*YGhE zY&ZZw1=qbJd{iPzq(vL0t*kQXlRKYq3-nYKJqQg7!XE{QQ(VQRy;BlvFI_LoLtjr; zONH5Beqmhc1#?NGZdWWMjF|q-L_Mc;>bNL($aZ!)v{^B;ZU;dx3*qu^w&Baw zjjy+UzxHI~LHPB4A4%uXDh0BKwj$X?S(aBV;`ZbTv+~$WkkZ0! zhauLBD2eOK7ES0RJ8WtA300e=ZYXM!V2g#zV#oO9Bg78@7MpMs{e#@(&nj}mNKOWQ ztzVA_Xx34RD~yNAkTxcjIf>K%h_&@Ko>BC#oiuYE zgk3X1uBkLILR^UJeDVSHEQY&1g!RHX*7`;z#7%$|mUGSQqi@!%U4jmGk6*tF7IppZ z4b=nqhsk|irM5w&3?kp&y6vB*s zRgStov@b>|l{9*$d!btH92yUNZBLhK)4J#h_y?eS8G|CmJs!cLqHZ|w>*|!G5y6T) z7u8shQiZpU8*KQOJ8Z<2`0Y1FP|`Nbht>6lTm~87`a^JNSkobdPzax_XD#R~JcK{A zyKtD!S||$2t2Ko1N;^?K@t~J|cMQLSGfeNyc8a%}1P&Q0r)ePHg*Ws3;1J@S6h3iG zv)E+ML}!nGV(=)93?y}uHAURZ6e|*=?@87%w+c3q+za*-Ha+$TDuZM#c-)EoUHQLJ4CmWky z(1)x1lD6tRV>$bGu~(2xMf96(M7M0cJ=~W`ttqUxhx<&!93<#fO4%G~GV(-&kIyN~ z1lD%LFbZb+jrRiEV9(QPO4oCM{euAlCh>hmXE|@YVXGCu>v=F&CWn(oIF0^1?TD zZsm_ zbnC#KgpW`-U`jX;xH zJc=5AjRuPfQG4gU@nbOWuLVgEg;gDQ_^?+*nXbB_yTw1cdzrz$ezdWv)3Y?cuqBB| zSz+Qd+x)}hnQd^*G*-;CPwS;X1Gs@!QSzb)RB39yjA&(e5aqpK=i0+x4Y8Ig7#Tlz zBj7DiB<;$11_Jwlt^|?;YK8Kgtx*OTLX=DTmR8_|?-qo_Ub1?2pN3{FozXYjMD+6+ zXrRz%fib2rY_Cpnh)^cWy2k_=o^J4q7&IAmg)P;+XkTh5K-YUl0N5ft`ef~}kxb<@ z1RyF0(=vNQ#P~zal~N&o+YrBT3>GBfExr(hb#-X(#0BA82zrtKv(8P-nA+-gRx=^> zDwXDSsWbvIqwu;GJ5Ogg4$3N-Kl-BioWw9eyHG!Q?Oz{kPOjhNz7J+nCo~0);t^7X z%)!Jv1qCFTC7-n>BmE@Ay^+9`!0q-#j8Mdij(&hEfuk+2H-|tBCV=|RI;mXk@3qQ7 zu$k4Zo1g!~^!YnH>%h?PuZoN;Dy^&~!~G@3DfCf=MXCxA5)|9UYi)mlA=auQ{`I&O z1<;|YO~?r_7I;D)1ItiC33fEeQUm#NWUlDwXWu4Y*Pw#Iq29B`o{bf(B(_FjO_3;# z4~{JZyh6K46djRehW=w4SF5tCC2Cj&D?RWoC(|*D?61KEr-(Et;9j_>W}s-ia-HS7 zW*~?<&2UNBTkhPnN?iDeCju6Xt5B&rP~&#f?ZR3#Xb^??JEJ2u}2tL zfh-=Q-I079GN_rmhZbZnx6g7+sKUzyz*!qQOC_4K8OM{Gx{qD^En~pxq1uaAn5ss;kn*@p$9B4yKdAYz0~LZTq35_Ig;Vs8TZ8BSehl)}AH zWS0ydZz zXjzjOh>UbKHP=T6G#o2J4C}PWq=?I3-#zYXOqSQ#%=VihD z&a`b50HCOHGtuEu7SRqwD9VL$mbdfjC}yTG32GYG`SWQvTIlo+w$_cc!IAk6!7z;0 zjFn}wx+FYn6dek$wC=En)5s@;If8U)0UV$14+vhOUd`hCC@)tBd&P_xJM1UK(~(#v z=tS_%)RYoA`>T4Jxk5paCsqd0jggK3PG6=TmTE9#BxQk6ZR4`+tqQ<1kf?(l_}tjl z$hG2?5UFGjwcf+yja%b^SmUA5s4`&^R|dU76yE4(lVu7z*~=LA#^2rxoS$XiDJT`6 zsM(QM@fds1o~+Hub8L7TMPxv(z$_PAdQ53g=K^B=<1} z!L5u5RC$$`P_Kw2Jf{kslI0{BhTkjsh%8IN3_4*(mGZF~fv7nmV9e!MXKi$SrsONknF+OQ-@N-f8++B}WdW4K|Ej^Q~>{bHGxM`EWO#qrLNKJx( zvI^SNvT$f1j;amH-AGEAF6!|5G>c#l;L&1i`lc>V0!>E}R#t>IhSE|b7&){?=wG|jzwq2Bvlu6KO zb%oSPfF)2>_)xXRH5i+fp-S0nE>Izi($j)(eSH%CgY4J&pyoIuvFF#U=2PF&w9$9WHs7z|5mLx*b9Nw1~RKzS2=FFX2+o)<@qy&yrPLuAbK-TnW-uPT{~d4 zTALsPM;ko$sZD8?uo(>VhY*ah63_83JU0& z;ONq;kxx!sP~}%_+z8Q=FB}<=uSE9nyrzs~tO>d9=(dbWV4lk-Nhxwi*$LG4+Nmur zc>(7(2^*T_Vke8mqO0ql-kJ~nPo=cTd|)t%Z)r7W8d{mzhb&OJO_R(P z|7j-Wpa%wMaaY>m)ENvSth$z1DX?jg96RNWcjiB+7}-1KS;-7n zoLbmU(230yF}PN(I*#!OcR0qd!JLT@N#`MFQ^V4HjU3}Ztw5C6&=ib>#1}x1k@JIq zE`-rs8J&f%-=^m!Dz!FdHs zj6lpye%#pq`ft*RtG38qEiXWT{EM(a1`c-}{(zFKCV+Mgq5s(sQK)22hF~F$ zf~^l(N2$~tl%^e=HZZ}^E(+&A>5HSeBfM8`Xc6-j1F^zhg3Hyd{;V7y;u$>84H>B} z%FN6aTJW|Kykb53(BIRv6;UHUaWvVF?olYxI@F9?whwtYaP$T5YqVjfHh$KGJCJIG zdi;t+{7YI@w%DZ;?*PS-Rb~}RbfP1~FFMvbl?%ogt)rRC6zM*;lLZay2FE&aGb8=` zM0B6yk@@xKy8P<9H|pSk(2?+z3wPngGGs^j?blAL?{uR&L#?_MM`&9Lxd}_1f)Y!u z@tL-5cKXqP74+K$yhdiSCpVw31A*=HLOLnutonHWtDn!%*et1SY6q)d8XiVmpEik= zi(s{gf;6qUwJ1#yl;_*j7Os~nQ}g}nKuHH|6Xi``*Y|;dD$jKMbA30tu4J2v{3Brm zQ@!G{VLb5DBP=7M82ws&)>X(nik@ipLuBi-?YG(;`FA-Hm{$N1@@2?cdKuPAaeQ-U zW}Qp9C~b4u0F?D|E}_rz`|HyKjm`Nb<9zzA%EvnmBux-}Y}M_P6Gm_HPi$G_aP{lW z>S3XJ{hcVTOMg&0h1rZvzH#5%*+kW%0RdUMU-ye^(1%+Np5LnVjNIJ%n8kis-W8~m z**T{>Fbwt7^*lsjuwb(pw3^&vGj0pl0* z?HrymTgMN=2f*_YH$$xDc6vdl!aQhmsB0DpH z2vM;MUg0>odvmrd4Rrh{+9k`MO+4j z0&PJa6t$|Kbr(Q^I)^=7h!hbBj;hlkV(VpDVcFsS_$Hsf8*Jt~f6e0K<=l_G^I>X2 zL$0UpV5-xUfLGj`>rin}`UWwd;E@$7*d`TcliAIg>UEg8wrvkEOwo%fY1rL7(1>( zv(G|J9T4JSw$*r6{8Bsq; z75V$S)3^LTT@im#xtFO%!u>f1VKMq7d&G?zL4~4HwZ0s?e0qC`i{RHWA>l)Xz+ec9 zxt7i z10W<$mQw6efyR4>FEpsgnNk~B55nH!)EXH?*d=5_U-6ndfeSC}Ha2cle@oZ}Jg9BT zTPA3x*Gcf35XBp09Vguk>Do?A?Kau}oHXG}tTovuc*vG9*>mH!=+JomlcW!s2jpe( zKc-x^L<;c~+M%E-`9{>#j+`7p48BgfJs{maBoZ4|OHu>koVNab8~8*mNC#i9b4z*? z#0hNpqzME%6?rp}RClY^DF`~^Q$iXNQ+%HR2}^XMK>!8kc*rkMWp}H06n{eGfmFM* zdf1(@drV{zwAJ;G@>{#-GX6l!Ck7%6n}OEfYj2|{uDnX{kC}ERAv_2FxFkq9j>pe+ zZ8dGjpK}aU$kQ5Dk-RZUt9i^dP4OGz(C>7eY3iE69|g3vd>>4)bek*soCRDIg417L zzND3EzRtIL-?FrL8IW}pG8wz;DgjCx7%!xlsZNTcZ&S%hiUgUKqPKlSJ)%=CAI_bg zeVQFRVj7w%34}1;dIbrc`*W7;)=SP_@u2C8I#VE&ce2jN>A1E174ns5^g9gT=;Wtp z0dh-gQ!xZ8mmyEv7NO;=5R3nn4TV)>Ra7JK%l?@B)E+76JRs-;U>gF>C+Rg`#iFXh)zkK zHhvYXtws~Lo$>-*^Jx!qbxS>@^T?i^9)~Eu0&K*RwC0J3ZAU1ZI9Kvu#zbz681M)R z<=nE~XicI^Un1qUGt$0W`e0~_s{zhtmZprwGOZs&oQ-nuvJk+SqvQbTU>cG5qKy%J zi0j}^iPp+Wly$7sqT{k9s&wF#b&i8J>TOqQw{0SsHPewhl%f>NR`ObHiiAKb{uNE|ggJpG}Dh2~rDTrU>mE3L?}X zLT*&?!(jnJ%J}8x%7D3I8+y8^+(K5I2;YCIspuVOg_5R3FX)}eu6)F@t6z(vF3rr~ zD-1$*jU$y?V0t_~9RbC8^>0-WGO! zc*i0C0L~TPc*5&2i-d=|TcB}^+1Aa>4^DJv^{J*_h&E48(=E@^DJ7_CMl%TYo=D~W z<=w6PD30P=`H&cU!#kqP-a;hF2ai?P&PjHz(W$Tk1Bko3Mg4Bh{-q_;T|uv*jbfv6 z$?C#4sm1Ao=Chl^mhxE+S-lR0!yF2{_|OQEhxX zyA3JYN|ovk+`5hekZFF9F`MUucLyEBC4P^H$ zQp`AAp1m{D2$=xMn`dZjmiLXL^ppK=5Yjo6^#C6-TZYhv5FOlabjaU(~!>2wm| zxL$XLwSP`|ETTGMuf0wpI)#{}Vw|6mW^^V>=|GAUZfC`!Uhycz(3DxtzHI~vWOrgj z<}MIPKD?mJkVG+R$R?+&I#+swIO;oaYEKt5r-WsBLl!q?Gw>LRbSoHp=Otzpq@zD^ z(&FOlgz5SMFR-CZ#O+k2^NY!=ms>~5+~%0fpsq$nH!`3lPnxI%T55q-+0+G5^dEG; z7~c30mGm*`c7BVM<2HHFDov${`BoLYTR!X-0FW(lmfGYkutM3H^^KttI2>>4f4N1cY8C9=kowtxduGumTC<1LHgnhgxcGdFYDh zj=JP2Y`~e|hHAc*D(VvEI%+ylM=+u<;(RIKMB6>_G7xiR5h-O4vl*(Fdb* zgpI+2#Yk;9kyff*M2>-?r2weWN6o-S0ERU1^QwhDd6pL2j0t`1x|?V-)*+O-L6r`5 zf)Op`8QkRoaXlCS4o(mF8-o|N4Qb%^#|0@dfoV9PHI|dl<{Z{&We}s#DC@q1yZlZ% zvGQDH{pQLlPE=*VT&L<;5$ z4N4K~_F#s(4Lx>6-wUB2u1SKbV+Y2RW?uvZRu3F+tp@{G<$4dU3u4E9h|E%|5Qvl0 zLOiM8G5Pn;R&0V#Ho7t(rd)ljG)#$h#gdDiHAIu5@A5KQvdWl?!;d{%K!h5#(IN8l zy1aG^UN#Ki!5cZk5Csq_C>0n#>TkJzk18%=YO2>6Y=@rAw`Imp(KSXd=wG&Q`pIIh zC2KKU;M|X=nN#twoHM{z^2ux?0D-J*b@-w*+T)!wyniuN>>Vt*^MGZ=)pR-lTc^U4 z1{h8vAykNdRc;Lo*lW*c{%FTqS|PIp6A6X@lGgzLO+ib_UVqNW_k#!1LB&9FkrIz2 z(yIKQBrb1MSZJ}&LdQs)7KrB06R~)_@f&HVxaKrhrrxLxyQia=jx`Zs^>!=|Gk9_E zc5iq3)4?uGCL;hc-c&}SmwTAwwY|E}RjgU~C2yQSkV~m*&?=Ir*hVF}IOP>iZEF)d zQuCjeL+RbrplwzS4c@rGSkeE|(Hyv(b}fCcjy*Ix2w>;)%Yw1cmnw|&((U~t zsxeU|fnhm@CO+K_INHrJvb89IT!og8bjErUMIkj&-vb#m2-uX;qrHft_U17v+P%jC zvN9n}tE=MIE4Hi-xT6T()BDg3I*5()%#o9`!jb zIKm|`DWT_Pi~~TZ+IM8-5212;{K9eLLmF%>aWdoLHF}&}%}ul|mMHXMhR?VQ7??Xy zagSYm*mJO@u?IIblE3UhN6Z9JLGdLcCCqnNW4?N@xnWcm6JXQy$@;z>slEL>0g*K; zEBmOatNSEHtU#f$q0AYp7N4q4mtZiQb1)R1t3nmS7+vL=xH4$vC?vHFM`^!Kk596& zEcwE^0rn(YKmf)MTD#%!z!x(ytMI!9>g~LQz!D&_!g~h6k-*z4}( z)+q*T@>%9vlaDC$kt#*eszQ-zi%NuQ#Pxqkn$g~eG(ZI{BecB^a>N{!K%rLlAXWrd z!+}8#nJt+Gwz^ADQ3>LsC+8veTQ9%18*OI;+H6K_VxZ2z!gw}+r94}x67sNz6fM1C z{H@%MYfVF+QOpDfVn~gGAn2XvnzOGkMCpq7+^tmtTS{iwILOR@?vksmQQUbVPPaz| zXpKs!TOfXNNDt!4iM*t*<>};|a{#N5H6}Fj!FAk(S7RHzPhnbrGU||$bWZ;r8kPOy zdD!!jwM(A_Z%6KiH12oDQgRcydztG2wkV{VT(V}nntNVxO0E6Ny|*xmeZ&^A-tXTI zcD>aQ!mQNQia8`z4(MW_N#WiOC)M&9drSzb-9+>b`e^~VF z%0Yh=r=J~^;G6uZ#x{MMgQB_hXCy>y=4R$2BL{~8$C5Og+EX;OwFRjCoAY>eDY>vDECsd(! zoUvr2J5eYIlGAK7F}4-;9hnS9UfdI$*=JA%tr2XR*bEsvs;#p|g#{7A36$^;^F)hn zkysK4$fA+}kDhLpTGY30^BX;GXEHWxd1#U-TjexEW{-6T#g7M-2M(h;*1nnhCx%ZO z)&r`DgdDTpqhM{tmGh)omB=VTi$4KSlVWvM@q-C8iHKEAJZNbMsCO*@-jaWgWhS;> z+2ccT+7f^?C*p1+!rf|0{qFN5;>k4TOkO~-wJYtLB3D6nSq(;q%|_>odt#S+y; zA_%C*P4gcCLvRUq-Bw&%vA$`96i|h}NO?a|^q`*X zL?)Kg`bJ?BJ0vWjU#J?r*(F+rJ|X9kXp+{kF#!jjh1w`(w#=Btg7F?aAeLXmnUo&+MOgW#3&fAdQ@E>T z+h`VZmU)^-*Ix&Rs6mL(62fnow6@G}6&;bkGC=>n59fZpg{&W{4_3kT zrw<>>#`{=hnuhKn#_mV4Ql+*-)JM^n6AED7Szr5hmc7!E)9y7yl#RPLc@!Gk*hBap zmtSjd8;p1L60cut`7<1U-RnitcnCR1gADhPB$yTlkdS|&yL7BMgMna9&Or-dqu3YHiciEIL+xsVG zh{bLF-qz|vu4ftd3jgdS-_c7qE?FnYh_<_Dn(~n@Z9K-AVUuB?F9>4%XOuebc@~J! z>GZ9cqrBu{$=p%-U5JD}M9Me4iR*B!=Lr-Qo0Fdqi~{_oItR&3j#{p@^vgB*vgO~} zY7@py;=e?vD}atD0$fLw_{G|9MKw)J8KLMg$w--obsa$U?+iSGl;HZwlsUIPAUz<1 z-lJN?Acz2@cdh*zi8d6qyNfruU%G&g9vMeRn|V$ZkMlI^&4Q07Y<_bNjw2*=gy@IgYCb{riowe*7AvPI%UBjJRotk-Cx5AU9eL2b^rVO;Cr|m;QsY=yF zX%;U+taQ;6#%S^XNC5KgF|QrRzzJY1D)$M5ADZQ02^ZY!2!R=9lK@6u-Az$fq~h2T zUyBrB*XS~N`sqx>Q2nLxV`Aw6{1K?+99*qp$-WpX&R{e~n}iV2W!JCmD#s677y?P0 zk~3G(1MsbEnZv0Au&YP`Ny^RE#q?PclR6#LC|nsCc+$el29eQlyU%f5ZU) zDM2I()-YNE1oo8_Qq@g@uyBb*wlDy?s-y~RLljq_ zB$uhYL`X~J?QCXJn%H0^e{=B7kxw-D%e%7R(C65y=DJV%Fe5={`SFshh2BM7n0}KU z>FJ|NyH6N2Tu>E2H~?zQiJ)c-qudQME5}-Em((ont=jQqUdw~UI+|y8nDHE=4_38z z$VIP2q2&&effK0%|6~g9u}##N1%SdH^Vl&0O8&9Y$vx9D1h=XirZ8@qmIBj&k@1?8=4s#e+_8GFcgQ@P!AKGnJd{MEI zai7bZ=}KzIegxP!7qa+fGmc;QAng&4ToGmFBS*y7f1tOU{Jbx=OoZ##ubtj#UX}5e zTa)Hm?4Ot!{cZND#eMW?uw@y!It$e&8xC3vGzY7H#F35=a*1{W8;EX+unHj&J%JVM z?YumeS`JE@`+e?TTg}pc|BTd=GF7~i5~@xuvRpEI(g!Z0Mce)C`HSPXqds+9-Z)rZ zU*SkP%~~4|t=tIZG!vdocQg1?{3vP1M1>HhA}RawG?-W2=nn2sSZte`w9F(cC=M1j(@poO|rx#{M(OHFa^UeQotHfzBM zf-H?g>Y#)__N!QPQUq*J(O||XBUV_vr0nnhPCa~+d#RWOku}Q`>-P2|(aA1=O@5kM7^!Si__= z6Uy>aoxqaxAQkYd5CAyVU`xTXOGSD=!iMh)@&^)L*TkEZJzW}x0Vl-a8&V(2h04v8 z%FO0+?u(VDxUcV;?Yg&>ArjijDiHE)^0LsT`BroMBZtY%xc!w5EO}ty)a#e;PI2`e zc6&fb&RPUQ8z<#$&;Tw(?ipr80>%YOe95EtwK+aXfjju??)+nxi3zJ0cf{sr+{kbzbI_;S>vV2ZJlM~A7B?M7#rG$LD_=)Bjr3G>JpbwwA?1g8c@bfO9>L=Z=O05^yGr!`u_X}ENI>Js)*H{qW+ z7g9x3mL=oE`tw;8N!zIilRD*$UXmuj_$@?sXqrW=3f8j@QOqfErbjt8iGBb9Gi9J3 zG+jxVrZj&k@|5yKR5Qs7jKIgfLL%#LqqZUFoPgXA8=r?-TXJKLeBTAwfg&BT;hg5Q z?P#4yDYSV&svL(1%~u3XSByVd{R6eNl&K-)f-+{2B^?{r^=U#c`zk<|1)5q<;Is`V zCp)3rzEb#^XqSR_Y-DVtv8dba21QC}$EP~Vsx$MBOLwVYibx&EBwDB#SJ-d#j(Wi1 ziKH|V=>-f7gGbp(WU>iE$>i#T`@q4-fR>OqI0@zT@q!h%oU$;1{J4xW@~&NfCqggr zBuxIkg)E|MSP?eJAJ5Yauc(th8U%{e*LzEZZn6 zTbj?p0GB2;V!#lg*iwzgl1A6-gVG|Y#KwX6VfKVb&UFC>cU0!-+4kBtPS_Ek?uRU2VH9$t>o;;JDk$+YNJQU5Vfy! z6@ovo77NAtqRf)azLksTD6@Di$WNk|&0_%pGrmH)(+EPRO=#KlkJjSs!_m5xiIo#LO25+5;$;Iu{35#6ESvBtzHlq{z(v$F@ZhnWzk)$$n4(vr`BDIr zwl_-;BFD0_H8uTYyD1Z9lP1Pvh?`p2$E6gP5573cMJZgmGSR=>9Wo#*%k+YFHYydL z7nUILj@Xc<-3@hO=n+9T$#nTaK_H}kg z<@;K@5=*ag)+-rWg2Enw0TYHpy^hn@E;ki+{HQ$c-ED>0k@}E6Qmkhcd`5+uD?|F6 z?5g`w_0y)wiLYJ_BqtZ%ZJK}c*M" +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 0000000000000000000000000000000000000000..62cf0807cb661d4b41814bb5af653910ad3f2acf GIT binary patch literal 118583 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

3LkvKupiE%=sK4d%J*r`dd8y7} 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 F{{f*BG~ECI literal 0 HcmV?d00001 diff --git a/po.orig/en@quot.header b/po.orig/en@quot.header new file mode 100644 index 00000000..a9647fc3 --- /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 00000000..a560bf6c --- /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 00000000..b26de01f --- /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 00000000..0122c463 --- /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 00000000..3519812a --- /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 00000000..2436c49e --- /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 0000000000000000000000000000000000000000..d259db57ad23473790e507774971bca3f3dc8b07 GIT binary patch literal 1218560 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%0Aq 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%0Als2UVWx{MM`s2a+50Z|-zT)$E4Ze#@ z7(RlUiJ36`f_v3Dnw4r=vqM9@?l2>*qD&}dyN~kR!LZ8{KxXlEjaaP4$e{GRcn0=A_l3P?m%XjT*QORv>YLvGbOUd_M#6#C+xp2~4 zK32p>rU;+hqd3nh|(7PMudUc{eVpk&0$UYggT>P+-xciqx)79G@eIPt-`8d7g4 zAAywYm;kOfkTrEiEe!olq4ilAi8Z+E0cJFVaT*4}xc0Amf8{L6^u zY?X#fUk0pFahJgQ``@R*imFTpj8mx}7R>j9zW;^5$}Uuh`zP6nqLsaGzrABh{NAtm zArq~gJsmESMDP&n_-OuV99DAv#DT20o23vhL6O9+R5a2d+-YIJrk}G<1wx~}nOr?4 zrFSaoj0+_K26>5y*v^Z(@Fq;g<-p#;MYHQ+SQlqj5) z+81L56-969vHRVl?H^zNX=BR-FVzQsV#cZ@$O(nd@&xK<$y&;Mhpq1z3Re?~Ov;a+ z;7wzSbo%oMfq^xFV(UIHbwj0-61*@C7>GfbUQt<(dY7{6RKf4u9w_w$kxIXJK(af? zkmZ+W`inDLvsB+ z)EFy|hf2_JFh2X$4vArlNCjKG=zW^tLI+ur;?2BDx!HGDZS-9l$_-~fw(tA-=0 zBW27{MW{;PNKhq+gtysH0glFmWazNa7@ILZS1Yu7$GJp}L`7Z#ZWFi3u^m?Qn=h0y z!XIDIE2Hs8uP^OaQB?^)r(F1m5zJ{HJ1{e~nn$|?TYh}8y(5PV+SC;Jrg9qW(u!&6 z3#EKeOYi*rG9yF)SeppWj|J~Um9(HTk;7*aFygI22-I27lDj6A=1dRgb&7-gpT}Mg z?w(EtRX40CCmW=ZO)Deo0zf%K+*^@Q8#ci%0VX0n2WSJy^*Ze1{cB`d;D&1W7EC*+ z2utRGIyAhjr>u@dJeCn71PF5(Okqt;FTjdL?<KrR(U00U z4N)VWlgml(`Jq2}(>r+UZXH!Vp3#D#COBEG6F4u?HLufhBqm*>amTu0$^op1q3lKx zElI`x67QY$I~cJMhYNuQ%YAiz^1-!(#)n^)HZl{|Ml?ia>uSX_DZdkHzqRkIxFZuh zSPf!Ky=7-2%u!QeD7BC;w_ZGZx$`=ry`){G?OiD7vi=AI&XvSuI7 zh0+ULWa%EdkCC2M@j#YH^vmr|lLSm%oLn~8S>$y~FfCHWpr9N&5Tntv!|ZT)}5v_%&Uon%niHaQU5i`DGKcA&-4Cy+ZqA;aP)5GSJuj~OV|&m zzFg-Dm|A3bzhZ=~lnDz7R2KG5QLALz4)73(Yvak6IE~O%avX*Bb6OLWY>5k$6!9dy z7KKIb9pV@dtSLYVLW+-jM6{}Bpp*j(o<}8su*b041EL=>&0e~?F_%dCwS7~o@_M9N zihu=*El+Zt`FSCVkf+mIG=;%O6~W02SK#Ep%HD9i@67$5ikr-L1x&(821RCqcE`bVlP0A?!>&d=4LQw>^65AJq6`{xsN4_E1mctMNkCQo^+qS_~jPx;tEy;hhDYZJz>ZPLkTEcXB=-;Tt#@ttf6ixmlj;oqu=o=IjS!VN%*9j^3i zTGnvV_I`aQ;B##Tuv9gv z2~|R|2YboMD1JlSW;RH_sn|etq2x-*4f+cl>M6_juy;UnE$@O-5lIs#Jef17a;d4S zl~kl^tAsX*&Uy!Yv2+f2ba<#xU{-2n>4=QT8A{x*d`IHL!COnP9Q4t$Dkh{amXd$1 z9t+XkL)=B5$RcmRWEa>M$(4fS)Wy{{YO&OoX9UQ##B?3?@kwDQ@0!DWmt#d;0&%1F z{ftq}~r zEG_99o7l`pz-~aB|7Y!DC$q;kEeF*=2Xn_y*14kK>ZYK>CK4;eZPDTGp(X66PdRw? zm_aAop-5Thkinxkan@fsvn`R$S@-%+ct={4igiEP+)6Avz4%9GpAFi* z2SCP2Ren`5kz=v6^WPnbLr*c|vO^WIK!^Vuo%51c@H1(u3X}|c?#i1+pyf|%U!8L$ zTdC%|WR-S{zM=0BA?QYyhL`#26i_ooP(3;?UDs&}X8`H_C3p)Q8MHV7O5h<8gG1^E z145_=P)Yro0HWd^EM|jLBDMM25}?`-nm>i?w8=p;#azWVZrG&PbKTT#=zCl&*!2o* zKWyz?^e+xuznibub#1YvYfa+E?X650^rQ5(J2qM)96$~ zLt2J2cvA?AaJ(1~-;jqFrtCM$rZKU4T(PCYV#(@J4GTrU;EF<)<2MCo4TxZY8K8;; zU9xF*kc#b7A1o0C9A^JvFNCrHKZvO-#I9&|C=Gf*ZU!ig=x#;zw9G+osKro)J1;Et zc+g|qq`Kv?iI(s5rcV$d(bGqBQAu;{bVS@LIkz5!Di*AtQP3 zfnXXw*gxuju&U5{^`&Ok5=(IocvB_1X(A zmi!uw9@;3R`r`&D7JD;D)X0%K4liwu0E@A(gtUu#_$tXZHi74`AHEJN9U-0Z{J6|< zH5eL@d3J8RP|X<2VoA8M(|F*g@!*u0mm7@JJBSbBkp2SZdr%|E@KQw6wwi95(pX$N zWe~Xo^-Gk>Y;{-M%B7oGPb>LATN<=D40R7DHtmy1VR**~%tn`Md}B~U@%2=$&Rr}W zzoid;HkL0bgkJ#7jR<=GShMBCQ7qVHbz`Zm&14kC1Npc(tQXlyzhb)OVj0qHhlL=m zW@$wTs}E1JDLZ$`X8hU*B9VijOx14;^7gng2QKk*OVh*dRqviyGjXuLI*`c;1k>@L zzr$2DpK!4>v*((V^abUk`q;|RkyaG(ah z5K{mWR=28I$$_-mIYr!wVN`anme$*QdhvE&;iI3z8y+br78)?=BnaC?5H1v+qwR(} z5n;IS-FnQdMA-ppWE32bXn(S9LBn{#iKizvH8P4}UAD0m=OiqaXuFD1jH;bfDypGt znFpJ;!hkia55ilGa%mq8HDmbIvyJCF+n%_Mb{<2vJfiIle(tyY--L7UUqWVO12U*g-G>)6;Xj3-(~%6bnC%lr#WO;e=@CP+mHv+pj&<6uggBs&ob zu)2Y;STmmdz|h7$otb;B+xuAzRs<|N@hl~R{vcSbL;Ndv6peb29)BJ8&NY!Rl=sQD zL+O3IWzp@wRs=0aShDp0>)3}O(=8&}iU_E#S^dp&ferY}voVheb zTGByKBWYuPa`e##7AFwlFG|6+#9Vw2R@GCnxNE7z$fLVfmS-mX^FR#cw>3t)I9O%! z18NHCAr%ADOC?kuuPt#l(M7^xFj|LgOl~Ctxc}Z%2;#LuUNy>EDiQNSD5+9rM+(6p z6asm)EVy9#XWF?-ub}f;5waY?kv?T)<$NG_{%JHWp7jPb z(Ux~KPN(AnrsBqlL=R4u^|j@vy(y}-*FmsUIirIAXYV#?z&_y7N?jDd^(1Iw5? z89b=`K7uf%$rRC0CYrY~3S3c_h-$$vpZZjksh5q*&yUAoroGeao;_?mef0c?S8PJ-_fMbx+v&;u{^0lz zcHJ}D50{ti+;_lK6HeTvy@RXZAuXgoj2@Ve;2Sf`@&0`K_{T?E+Z#LfjC{4AV@7Oy z;9l@3VrnSb!rDBZcjmi^c4-eXI zAg67-jTeL5A~}KRyGZ@9lo_G20BPMSS1(KAv?itZ*m3p9N-m{@NmWm$TpB z^F#E~cn8Q9=4?>4eu(C?Ob#5KzVN+OSs7By*(7om4hwnD-W27KtIy( z8_)#lT>FI8Y&UO{C3PX_&pxUeiz!N1ExSMvbOzkQ!29k%y+0nduDZ8jf{xGMo-6Ss zUe({~>ie?qL8mO;Bmdvkw`4`%Z#h4=l!vRY&q+eM{=dd&m*Sua@k=!IxdH>@^L;hR zBw{l-kz4u7)s{P{kKOQrUWZx~&Kx6@u6QsRW z&4txK;5Hqb}rAP+Tnq#8Gq<%fQb|j-APE zUR+yUF0TZyDR4Jmi5B2jq0r@SJher}i7Lp2ich@7`qElii}D|u>-G#yi}Nd2EtXGo za)Nwn4Wc(Q;EtnmIA+W)QyeK~J8a#yK!p8p`JopB_H_ZYhl{>6sZ(>DvG?&g?J-G# z+|YxbMk!tOkd^F3FL!cOm1ZTK_XvmK6}MvVr1gg%>0|Z5`M>0Ef#-^Q8=f!qA*6i_ zT+VeRRfr{h=}JaPTT?N$#U)$Heq2vKt}bPz=kUb!SyiCSUj+*6E6}(} zTJ9}tz$nVnpTV&W;??%Mfoi(=$|FpG^ePOkl}vwX;;18{n~su>9p;$7Ly}KB z&+b-dTz$YXQvTxkB_&$#&aSPM_Hs${+WY#FLYOWt%_^Go_7G2K4_)7O?K&(nbN33- ze0wN9b$i&lYw7{i$EM4Bxce2V*H@Ru69zz?PU+hxs+m1nt6ZGPGD)b?I2o#&C6f(F zola>6Vp$}>*KZxm05A%;?$!m!Z3e^9>k2L>7C*O_H3;`&N+T&bbL4d%yf0#quFxVM zx7OY|A6{+Uzg8P@?zMmWbN@=w@)vLf_OH@Ob6tq zl{lI+R?=u?LiC`X2kD6TZupd2i}>=H1qP-!B(1VWaN&vvzeZ(yNM8#HF$Nwgf}DWA z2JH3anOGO3{y8{^C0ZEFu)pqZLCbolA)MYa;LKi{rsX>n^KZI`jem z!aS*m*TDap>mFK{d+;w@$SAwa+0)Y&)@D+=4yeG^$c+GUhIq&inN1bxApnv{4cUD4 z7=U;j<+$05!nPI|%Gnt7PbJ#TCcSQh7Z>P3IRinX13WcC@7>#nMBr&GCUrVd5>~FE ze#Snl2bp#Kf?YIHY*fJYhLdGI$^_Z1*V81|ymJXHF2sDkQ-@yHe8%0(t)1~s3T&na zAU?EP`#nU5&h=$}N*!J=%(2B1E1HyL4Uy1b&;#-XNcX>VawndcwZX|J?lDSvOcKUy z4Wsdd<=N(dU7_A7uMhhN^qx8A{JTnzqjKyW8m*V)?d!l>W$@|@1lq%siHP3v5Y)L8 z;TN{0EU|Z+tbR)`J!&ECk1wh7XK($zMI{t1%~;HZd^X`^*-GkP-YCS`uy_9>?wysz z)`RhI5V`4!vOE|L4jzb^+Yikv6M1R#Uw2>2M}{$aOyw%Ntu^Y||A=l6rJ5L+Cf59@ z^@X+1T$C%*qRzb}o&S+F7giURK5tE3ISaRi!mQ~cK0o5u&E9Pmeih%9k$%;?FV4@e ze;ypVGQImJ*WUZfU#?lQ^O>){NMvW$t2d9Eb{A%urad&2tcQ(57z(D;nX56;`AjMR ztU?7-cGzrCu3mF}<#VyWK2tkr?1bykdPVZYlBqC5xld%jNSN(27w5{f^`H0T&plAI z0hr098n2ae3-o3(Q=2Fro39}?v%eC}L_rA*ip)ND{RKjdpSM0&egYwhEz&y*;-auy5|g6^D3t6wJ4mX2S`^Yx!gE3>cM@TI(XUNcL60^MlY)T`V}5?zrrkraIBf^fy zeM+>Foj8rX@{pM_MGpzzA4$lA_XBbh+yQ5?)fr);^1zu}p$E>04<_)Ug5*jl84oez zRRcm#^1uOfMn;AVD#dqWjLe7S?`VxF8)3~y!aYxc1Q{hNkev8 zl&;Rt7^!j>YJ<*uG%=gmQ7t{2U|Blq=}l#@oBKQ?xEaryMu4*&O!cD6(`N;jqMcv$ z9(XW1ySPU&P!G>|%Q5lmtDll{3v?T!xjDB~n0LcXoE+01ZEDO_Pg%m+PjIa+E|=hq zc!LG^JJj0G*e=n4ryxTL=BXikN)1KSQ(U#)YBSaP)9j>+QQMAI+%uV`(|{-w z*wnJahu6MHM&q{J%PDF9`g^itV|Uc1Yu*z@)7l3~LfLOGAXMJ=wZE}CZr){Q70S>t zRFcWH_??~n!gAnCi_zB1iZ`!&wb@=?<>*Ne3*g$q%rZ%=#MK9*dUDAkcDl9E`aNHs6ERngJW zk1-Q*&dc?a%=aaL1h4>5q{y1-K0{Y+TO!v=Boc{4BCltZH$rAdn~W~vmjP8%GJ7K& zlta!in03rLqK>AIs>%YjC~8foWNEmIwa^HaD%5SDOvT4paNP?Wja#tyTQf8Q1L@tk zYK}fbD}XKB?@jnKxsb^Y?_N+N0T_1w%n;&}4aho#*|FKH{vkEVN@-Xg(Fkicbz=F; z`ev4{H1meFWa)bgV(rW|C_RAO7#nN1hA~<%yXaY0bp-Gc6+zMbro|evk6i%ZI*#|>}z>ITiZfHAe*?=XdeZcxG5*1myL>60yBb2GR zx#K+;G%-V8DNZDKlp4;|N0Eb+;UvKlTNA1c62AKbco-2Bdxd`m&8&}77i9;%b4xJc zCDt$(9w>hLaGu-(c3 z*I@JCsQ#X=_po`*^@iKs?t6E1GuR&oZ$1)eY+l<$G*^c3=(TrZ>pq?ENxK6~#19!4 zpNT=@&kx#v0T(8r%?^CtfCzOsGlIpJmC1VGHN-0%zWMRw)$6xUMDm*|R4_GCVW)~? zBFhv0w-d|n96{WUV0X2lQmUP}ct1w_Z^FTsA(M&F>Y|OgsV$_|AE|(1690LSLI+K( zAR+jjyf4D2q9$}w0u{&&m#A1~2r`!XQ6NMjYD3uTJKi}d9&QF1^-kO)qDCp+Fx)Vu zg%x{U1>F%UQ6&Ct_cm#>vFq>l$W=ax;e&G^tri<#e`7<#)Mdo|yo%@;-)D9h!!*P{ z7Ko`#d95az&3^vIibVycs@ z&gUW0n?Y5jWEfz6(HoovYi^1?VV$SKgyGvs6v7lfxD9DqhXz9iId}SBy2C+V0%-Fr zWYWmMK=~6hcUPCKpWXv)8AE{bb$H^8J0_Y{uUX>d5X}aWR??|n^E8p0%@Y*rXl3qP z-%#Wm%nY#kSWWxAKi6IS-hsoI9XNo_HpX#=po`Zl@naw zptBNN#ohkScyEvLoY=3UHhD%!CSy5D_>rdIkND{vOtUm%z~*h$X;urbzfau-<#Wmv$RQy7KWp|}`7I3NJB?2JRpjCwj>OrVM?^!Qr2X=eC&PCHX z5voR`deE9e*Z^dagjSH|yjEHGQ6k~hXNNxV-a>w+y$y?3^@Nsq5&+B_{Akq%>)KRC znKBQ=8?{ZoVm{2>2uUY@Z2~(@i$%s(h!kA~Ua)vVCxEV#8bI94S*qG#w~m6oB3glzaAcw)W+z)Wjzz#~=JS-w0ZqBulAx1ud z2Vg-7dS$K&OrUoX6b!^j$}}?dL69V=+(>XVY52LEfayJrxIv_A7}tz z$E)5$1|cV=5=9u-a@alULwxLvC&NCo;^29<*K^5j37WT0&QO6K)&P727*C698jYYv z=Ra6a`@tVSe57T;jOYG6zIUI|aYo_f}${ZX1q{Y;`vrBc7df{nEVCaffwcr+v%}qB~wc=LaQ?y&AeTX$ri>MhP5Ca zfMi?pWs!M-miA(^Be{{O1)5RnRu?F8#{qrM?wM%k<5!$X2Dy@^@-REm2z+i3^TXPd znOMo?tG52cf;9yTyQi!Zc)EtDP=g-Tv%a{QzrxvQm*J3UR#Rjet{Nu(ido`&ThXcP zzu5B8!Kk*&N(p7j7C|f|2vI$8QXFk^>Bycc!y=fQdqDzj^v!nO8D*3q`hPhi4mPvO z?n$uiQ&P2VM&q@M1-XL9j4RDp8kP!TZwwQ#US`6O^4rLAcPFZ=%F%ea0Q4}ceccyq zjW4Y=exiOHU zkyA75L}2R$^Pw^he4(ZYGWO=w{TZOSnfJw6&{EQeXZhU+K;&r-ce8!q%r&%u)V&e< zOpyTr)`+w!0oB#Tu7taDij-oB2U)@?K12)6R)e?&T-T)S$5p&hUPY*f=pDGP$kePo zpSTwMvg2FBSl$PKlMB{QT0n#R+^LGxxt*E!DB>y!StU+samp39rF|874NiElsMG-V z;n@V7dp}>)Bji~hmpEmW&M!{RE(}5P$~NzA4<5j40M#IhLY(F1thG$`R8;aKsD`Wn zKmAP7ccnl|z90*qsZ4Qs7OA+Ia!pZi8(tSe<*U*0*sj~OcX3s+Op`Sq9^wMkbL-Cz zljzIMIYJ+2oHBO!X^|gz_pJpCMy2^u(Od(!Sm z!qm)+peC9okWlC(yow8T&%~7R3DH92920R$lbOV^nbY4tECn=?KIZvd5}NzkZAmU(@xiDYJ7$&@XMv zTPJBi5x0%Zq^9w(kurwWd?tWhR!UBxnp7HLCnYHHjb?wCRF_dnYQ>fT=sQq2Y3BML zl^H)kXtQ+9g>Ax0M`&g!7)V9XxAMvJ8TKIqu53Ve23l-#8zSujt{N^hF@M6 zaVT#2BFRi<9O6>eS8!CFXP|EFi z)l7~BY})0uO3aR@fx`n%>w<+nG?4yj3ZI1AjmFRyW7c1TrSqH%VPW=4$#Q0Q&wdHYWgaMglj>-V&ygtiv$IuSpzm6b%$jk zRW3U(J#7_fXV}N-tI8QGW+0#rMQ#j(ad>3p=^loREZ?=lsp#g1R2 z>eZW%PB{2k7&iA@@B~B2&W4r^3}&LA9^o<@ii6tD_f(q+`Tf9C;aPZhU5nbVJ{hjf z)+!Mm-DWy+6(s#mF;UoH>}`Fv!F6pu+BQrm=*1r5ro17c)~J^iP_qyYC4#K?!gYKi zbjmV6f{F^u9n86DwI7P_j!%QyGYzHu5P_eKBC0WokPLC1=U|@!&0T-z6IPlo4Nb$` z3PH21wc4bc3aR-B3vO56t(C0+0Y`bOf(#eV%v9&sb%5vG0A7cE31lCk{vyH}W}1^K zMj|r9L8g%}k#sYSrJ`&x`ZZ>xpYD}}ep2B-Az#Ci&l%VF)NDjl{+(Y&3&rP`(m@7+ z%&xu@?=GhqGGk0V`2%-wm$QK!WC^_rin-3_{O}{> ztIdaLy0sCeT7DGnRzB;B-@EDw9Ak$kpVp%TtRVG(=?>W zXfPSJU`jM;??oyj^-rL$?*u_el5TE3_CD`4Ls``U4E< zra)u-BdzMpZTDY{AxU5 z9U>+z>Rr+uCGhe?8x?*S-0bAo#h1`Vg-e&>Xd(dEkOn3DFakGzDyxZP9q?v8kqh?o;~^p3b3wn%5C`%M*`=Rx4S?>CtXna-qSx2i8G_FeS(5{~ z=R?K_fsvMoj<=x)u7d!-K}UNT${DO@p*UJqIeb&#C<|fJNbdw1IbfC)2DElALf7oE zw1oM-y1G2+n*`x$Id56A_%1I7JZx1c^TZnlYl5~evC*K0{;k7c88-Hqg&h0-MuV$> z%M148UW_7aiD4oG2@TWR|H!FJ!|9#IPuUC6ajioeAMbp-Qo_# zLV^}|IQRDv$FiyDW_+O6n>>Nx(|=+32p`WjB22@1sw5-wo`JY%?obfx+Vm4M0&M2N zva!l$T1L{4;B7Y{P9^%lGMsz{{gFD_HSEiodUU~NQ{v`x=gsJ&v*G7xD6^lLLd36# z)r|Da23gvbqh!OilAICF(?~qWDT2n-!6ayur!*46b)#H>VLQVUyWiy>8(oTP3zC_7 z#xMW+&AV48FW$a=|MIu9jgh|$AdxW|@4Hm(njLpq$>Hog9wd()A#3d+#TJ?X2##!hD_Ij#ZvZrO5X}M&SIa3%ZpuJfHZV4d`Pq2|q|3O|GlustY;~s;J%jstbD6YM25DPVEWR zM%Eu;0*Q2EfH&N$Ls3Un-%hvgv~sM+-sUs*&0Tdthtq#*fAv)tbc9kVXQ3DQjGVRV zTHbkj^L%qXA2%O#`gP%8QaXycn4t_n6H4B5<0{(W=4ts=>JJ{=I52p34hy+6T+ZvmUYUu+6%nX}tm0i+R;x zd}q~QT>S#82IHogIh2)EgK^tBd(~jPiAD;=SeR9V@wA2cs=;{OPllEPJ!GJM>GYT# z$*$_F2ICO28>IJptJ-JYbmW7jGO-2wlD5&{Ra)bRt?58)hSGv*{Z>~+f?kCQy>#czt7U^O!wyo zDwf$`zPVp5_upDI7?14C@y=14kvE z@u<2Uj3jBF8T`@+a@=fv7P_J*{Pir1x#|Xv-X`p+dV}<5G(6*JpuH7~4UuP}?5Z31 zsvEfNpu6e@PIDKUV0mw0AlFyjz~jiCkTlvpVE#_Ct8U=WclK7@!0B5=UavOt8$Frj z^jdWThbl07=C|Ui8@ShtR^7lO#?WiY{4#pg4LmBu>KYiAZ)z{m0E?@QaW(=TaL&GebctpiFbWEliVBH^b(f~Q&MK|g9vUt;2o^^GhS103*# zxt187J{UcmZQ2{_TRS=SJws`y#%O%g>)a9S_C^jY6aNuW)Hv&0V8QQ(@OF0oHo**c zt;WAhI>Vbrcig#(Y0{pVCOg@B*r?de7^ue8pnX@W>}HAG9d(++)@5Vd8D62c1PZf- zh#w>S{P^Ci%L%W3M#h0%ubS8M5xj+hG>phZ-JL*2XqP-c8vXd9!)RqO=dv2o0=Wn)A*s3?-2_b#|zFs!RC*#3M zdq4p;?43Bkx6BgB2b=;)yALs)SusCoyMrpZ&jEkb8IDgzXaXQKX5TAD<(blJzxn~c znKEp*42`hTF}fIGJy@9wBGlI3Kp8gxqo5OcG*tq}FhD;GgY@}27`COrMEAVgNt&ZX zt55@@JSJsayW+0V_- zsJ${AJ;lid=`ijrn;vWHYinCuTfbPtpRLUu`4?KE`FCw?b88)+?e6YuZ>?=@Z>;}f zZGCfRW9=8!+OiSJ!JCZ6&0$sjg8fZ$-@DK7*!j8p<$s@l|DodYOK=BxpxZp_bw;x7 zKD@U|HiZ`s8ET)`IF_3iooXWbGpp<)*8);~{1nlW)u+(}N8^n|y`y8yh)=c$=(;Hy zm&C%04|gO_I9T-SKKUx>1bKAX!G(mOx*oZ92W7e2 zlo138gMwJPtHC*bhi0cKGf#gBNr~S8^m_2i@!4H=iNP6I;Qz#~HMqVpky)36 zUb{2Ihs`ku!V_|?Vytc-qw(QOs4;j%Cep#=?>{nBdHnR6rz4Idq!Aoa)8;(wOUVf4 zb(|8A>9~eK)&Z0yHr{{qZh#K%f(FO5&Qdr`@!;qQ3iFPK&DI!bX~eyK_u&X|MuW+) z)xmSn(+3dLw;uJT&QC55 zry-+)1lOJ6XwU~JRuo2_!1(3~f5g|&b6UM-_sYJlM6!7pkaOc3q*QUz%&h9Sh35f@ zG`XIf^|~#~y5E!ch2X6wSrOkmT2 z;G@^WPNzB?oR4vAcBP^38S=4h=haGGy#1OMHHfQ?j<6F-5>t(lfnV>eh zq@p_PTn~n0pu?62W-i#jNUku;0rK0me~xDw)uCYo3zA4tGb3^F;|TwD`m+8b;4S=v z-95&CSh|Zzx80!`gN#zSp#mWRinb=ahS@2Ou>90M9)19lkUdxnJN(0^8Du6P|D@mQ z;m%S~ClCq@JO45vY7DFAV|Q6cavPXDWB}pyChRk~f`D|A9OroB>tzQ-af=K_1uWkB zzYcLd6_&BqowE+#rApZvcF#I(vw^_mWG#r2X7#mm2Jrz=KE8xNxwr(RJiie>X%F$i zRJ^CZ{Q2<5H?K~9_vy#OlNYaEeLOgXCxA3~`~Nh`B)n)avca zlb`V_PK3iJ_U>c39hkUd2Jba{12DK@dKfprEp6;}5D@!kVoxU7_fLNbS^n|G$=mlY zU%WjydHLe#;K%nL-y9IT|9#H&S!V+Muhai;|1uejamxJLtZ&Wt9QD7Qoml_dwZE@z zZEUV@?f!x);`;9P&ej(7zxA!{?f+!@-+WX4FZ1+2s6=woLS!FLUW#tEOjPXw8}6kl zG>=|Bu3%%_yzLC55{E4)8Yce50f{5#Y{G+IKuvjG<7D zyR`D$K##(?1Bn5tMNA+tf#C}rdiJ~)nNZzx6YGrbQT3?E>_$k_W<+fVcOSfYWb~mf zlz}VU3TPsIarpAh8>qg}2q{rP70ReS&qNV*G`@6j<|s&j@jxL=`#@7K?9i-xT^u$S z!{!%EvxVuxjI#D^XYKKmstJ42csRHQ68LCi_c1_m;PwFOh(X$Xv+?+;)r%v*gTZGW z<<0&@=X;#gJozrif-ap_OnTA^o)piMo%xt zS3RMgtd*6fdVT=!49bFCf;A2oj4WB2yd+r64Y{wH!_U>DPv4>G(B5Nt-RQ>C9^8Ly z&%tJI1U1>IEl~cNU8s^gqUwZOJ_>dzbVyxpoW7hA)@y@p2;9trHA`lWZNp_XGoSY0 zE6yAc|8R*eMAm!(We=z9r=!=6J<)++we3M60nd1pJpX|-*VLAvC!a(2=!v3|f_roL zzOlErz28``!OX6UQ{T-}K%I~sNS(qj1pFXpxHMvme4!o)jpwXYZ9Lte&f4#M?F=6q zJsq627}|EUO#9o>O!ouMC-9vZ_-@2-d|)?122SZ{GIV%{%ZT6Wv|3*aHZ36H_u4C4 z5r*q)$>ObVY{XbVZH`9WT#G2azL{{-`ewYQ_&o->S)17AW__8^HMlm)W=spX&SI># z;bn@}hPK`KksY=FhgSJ}ABKa!;?!!qX*Yfk4Gn7PbFY$aK3!`xd)JpudY$flcz@J* z2}O+e_Qoq{gwI7GY^-lIz@_Wk&o{RkYujsU_Tk1yxKar4)@R=~N8`qkRXPU4=T$)g z6~J$ydrfdtZX9)*SI=QM>38JwpWpm^;HR+u)S&T_W(v5ZSr_d&4&HC$XE45Z``?QK z35WU*a?A?^eU_NOOx8GnJ%OgZ=hfa>cP!6*6hlwrXBG}`{0_#R#?gR;zi3d0|8E!l z$16Eh)VDFmA?UMsm#d z-hcf2|8;!tKmPsyHY~*%Ia=-Q;N*K!)zebKSe*wgiPZ@gBKR7hAG83P+9n^V&v~C( zL^=R*zv_a+U;~328@9+1Es?ZR#}h0*Bm=n=BUt~MBdfg0c;}P9{S7wh`n(t>L&v%` zIr1%OGwR3Wd`6g$f66k4X{Qp6sukVW5y+L9WIS2~$6EifD0dic10Ccu!v))eUg6^2 z@n7a=v$2(pC^56KckoG{lh2W@_CR5Xz3dFk5Y9_ZsV8RYxRZ@1S>eILkdO*lqPfi_ zv14+Zve8~rJ<~0eiMHY<%s*Eev=m}Sn{BbwKL*Qw9}j|c{Om3)E?hy(9;_jTjdech zaaT60QwX+)PpVUhmR<)xK+K)8x>N5VtiOYxGFJ9&&>Qb#OFXIYqri|~00qAb9PWPu zDZ((iQ$=dl=7wfof9x<=z&Y)V1HpRITJWUNPy=fV4B)WL(*%TO^q%eR^l}-;NTb@^ z(9lIz4WUQk;Ex|ZK7rlIVC?=qzIUJEw7Tz-WsmQ{{wT>WEb}5JtvMKzyu&s)__+kKaE-*bac1&1}JWnhOUU??bg=cd^h zqjw5A5Rs-xG(W5bn{C$TV@zzf248#Vr}sY}h&BUF+mj*wGzWs6$}CsFiTmLXuTmiO z&vRflx7Tv#fbq{sI97acCSSxrU5hN-&v2Cx<(7ABizxe}3PUu97vg{oN;~GhE5ODr zdc@YNyaViP>(9HJ*>Gs;0aIERd79t)U;&+cBpRW)TY{S|WTkkC15M$U#|lI477lM- z_LBHT8Nz>D012a-BkFFRCkV&siiV&u?dso^1}d&n44|forlZ>j3d8JgS+@+?WMgAL z{B3iJeo6v1DbgTsAy%Om#9^FX-zq(sM+m-#+(rwh1$H?LBSv%Im4Ih;)DVE}-dw1b zbNiEpf!DJdozYwkfv!PFC`X2(Y4f!@JqwQ)hKE%}gcL;q>gZ-QS`(=)%A5<{iW!$T zfZErE;Y!6WC?gB~5lPwP%OZF+NIm1tTUvN-pa-3mpH7Z=^!+C#kl6_G1R)FnpB?+W z)uvGZTfVyEGCZ0f3J5Fh(IgR~FG^sGY>cCN}Y0dds9;NNTDDSt;cKHyS)(est<-V^E?VCAmLiR$8 z>SqR2ur|60xb$2w=WEkY(R-eUIagn;IbVxVX?GCnIqVo4gijda{Yy?48w>`nfP&$y zIi3o)Jy#rS1BrWf0RV%lRC>G%RnGm@3`4SpiWs%QaVd*LnTU>(rAzgZ=I2`xm0<8H3L8 zAHvEJWYwmYJc>;9Qyz&Xac=2^AO@X-^Z&sYh!{z~zD8A`=g@tV1GTxX#x*)Rr*x_- ze4PclS-c~J0*onS!W>jNJ>tP~ibSkE77uuFa&}<|p5Fz$bUa|*LUYI{Ql|RSEFRrO zKuWn-&GKwCI&^3lS#YmiXZ%F!yOUjv6yu9#&*@r?M)jaoSFgK;X9|O@7jF?$Y-mV5 z%8WeI3lSRHxX496j zEj!)n6pm%4I3Z*2RKDe355?04p;0wHV^f-6>09A1fnmJ_)LDuwVEn3}sk|BooPzfs z*&*-&1}RLhY{LzN%2ZKezAS+ET`Vv;2xREz<~nZUD`ipR11@L(2IbW4L}HHLlEc`c*=m(MF3JV z7Cdi}iuYc~5m!C>^Ikd=-y(f;+Oy!m#y7A^O-O!*24U8Tk<@ub z#F?Re!V0|7$j_A2NUA<>Ue%Pa+1`j|uZS=r$1=>P{^$PSYf?C(_HhITcP^O@97HbW z`I-A{9f7A9eJwC0aaPNK<^-*(_6VAi1cr9GWq1-oBYWTN--D7sYURUv|Dh zbYFDow;Wc-$3Zydlt;|Ordrp2gVz$X_CI;3rSA)n zcj74e^-UO(EnB~`6@DmGU1q8s8F^f24AP;e5S!f14T-AI6<*o)iTKT9wG3Fr8AM?r zn1PBVIRk+{GS9!l1dJGCQ(Hi0!<&*E7^jjQa$D=n*UV;cVis7yM|T8Rn#WF*kArz=DJ&e@tkyzPLX0~V zaZ{yjo~Efw0#}@e_w$KF`ulWZ6_L>%h_t|kl!So#-@ib~16*E6CKFNUbYtrEye8Pm zqpm?sRSe`+l3Sx^n=pCH$SWzLVS-)VzGpcU2@br$eHeNfSB&9<*vrHSAF*=B2tzx4 z#N6(x#xh_Q7eqrazk7#59(E@i%-=2ACHCIZU>4E$$x=agvK_B1VNRSC5}8r417(u> zUk0D;9fB8Gd$)KZ7eQGP+3bJo3U8%h3wmxkvX*_^Sbmg8$1L*mtkEF2Ijd5gj+VqQ~?;A6CEhl+w62|2x)aR7MOFTkR3ikN$r7ZJLqJ6H*d)A0|~M4{H}b(EE-kZ6SB1!i+| zA<7+kmjJ4Wzw*6EhmU5(1F6g^1kUh65u~_Ok6gEEPvu2m6fsmKK{meD=_+={wpv6@ zig+Yv1>^OH1XK}Mui%6N(EAx=Y|698;u|%`9~QqZ-tv!>hV_*}MaV3;h>O4|VyHK^ znEGYeIo~Qyfpdpt+|ygn{OvSZnM)i=EPo}Xojm6)2U?NFdcP4GTM;j^5ey9b9gDN5 z93=n2h}*q}Umb46Is?xAb`dMxzK|Rh3zvi+EZ~+ zI7LiVix>LwjHw+bUij6?b=$+GF@pjLfxy^ZuPNq8+^T1lZ|M>FC&aqJOl@5Ug$onc z{S=hLJ>6O@f+@@l!SAI2N{Cu8i5*xro#j)GMwAJ#hx*6P)!++GKHlJHMNpYu+oq^qMG&25$~Fv08!*liGp^a zxCZM^tt0%r06FM8EeCvv|2(%6Pk{x&6!FyCpX^|#hUbrxO0E?Zs!*cP;I}5DT%T8` zG?i7~tp(nU7?j@uHKia64o_Qvu#yySvAbSTm%&2%npAULB;=DCfa`G6VoRf@B#H(G zOL{v1#c7>Zo(M>huBz0EZV=)(ZT*u&*)zbRaEh4f$sI475q+~PnW1lE*&NVVo6Z68 z*&R~2hngIImpTS$SO##OQa&|}4eC%F7c`U$YLJQ)Rw+KeHY3woqIQ&rSHxW9xbQ|@ zWY4Q1-QoQRGX^6Y7u{OX;px0&EWt_x$&|4ATOKV8UCuOe@FemPq0Xq6dJTPc78GuI zrG!eJ3aF@1K&2KZbK8UYVYha&>0DeKlk$a8YDFD#-_?LKRbAE=(Crya4NWxgQq&vJ?!lzWJ z#LJ%$r72lfnaAQWrKr3RVcmx=Q)r5l$k_Cz|gu#6eq{)GlJTebJ6ia9fA1Vx$Z_Z^QSq``Hx|yNU2MWXNmXdE_;_*T} zH-Z!JQ|5p^I$5bK3rZ`-_72A|9_T)_yJH@he z*5FfP({MiJkUP7nnQANO)|4)Ph}NDc&1Gxjw)_}r9L0*bpmuSz^r3h_?bp7(u1D3N zg#y_umJwAyh(9erK{3kQg2$n3qnoR<0Xu0( z-iAi-3h{7t57zT)hTJPHgK@P&8Ib!f0*TV2Ry%%ihEO5g44*y?F0s*v;fovP)OgLT z^%Lfn3qB43ZTb9JSJuqVrQRc~@O2DKFY&>yt9bHwWYTY95bBOI5BB@wMX0~8AIC52 z)toQ?6^%XO_sl2JEBUUJq!?<=F&QhP^yj}7ut+GRsn>Tn`#*SdMJg!nu3wwd)=|PQ zyL~h#Lk2v`+c$8s{v2c+3Nld_aA_@tA`;An5AU8(74=F)dma@s7?8nQ z;~YAjC<%I|hr@Ba5yb;H-a_f9agIa;KZ7Zc1TZ&u)ucVTK@XpAM&6S(J$fGKv}XdS zTk8rH*K_9jLH3!7zKkX#y;*EFz4y=dbT|^~QWH@~+pVoN_aiH6*%fJbP043OAysRB zBDIf0h>)80UFn0$4S*4}9`WZ6?m15Wl%EJ7Zu?}#)8`Kf3}+b#!uWf7EnEYu9Kj(f zo>NrJ^inY9u0MM4DxyR|b#(Y+kPXZ(0U`3=29WmFmAid?E{{+198!THij8g`Rg-0T zF)x0A0v+Z9Pp`W}2r=4H<-lbuoIVa5RqjL3?y))>NL(<GLO@3>w0$m^XPTYx9%~R8poGch|6rTCr=<0iw{HqQKiT-GgK1v5oTKd z1q`<)`y+-}eu5xf@>}bN5@F8Z1F_cxW_oTi=J**{M!U(&dPKe62~3P=_Anix@6QRbII#-f+2ovE51T#O z&~LzW$j_5jglv;iKa1}6Hqnv*_%-$ONDF zy#Nz*`^sutX2H%nCn!e;y`zV}5G5#u&G3oei?=-&4z+{c3;ls3LB6Uqb@AsFYv5r_ znp2E5xP?;1P}Xf{Q8C?k9Oii^#Ah#GyN}>bz@^WtcLOMm=ocs>JNieIpXJ$L$PH;H zky?`+m=h33n1rj2$y+{%r%K$44~Bzn>}AV5QpsaVBJ54B%@7VhKSt^M2y~u--K)Uf z?Ih?e%mgCWh6OZke=-;jm3{Pp0T&W^9MkC0B?YY|W4Fc<)1M+}Hr2io31k1ERLi?Z z%ww=TOCxfsP3Xgp49L1w;kM^W!=mk8P8uNG+xDM#fI&36{1gGy9v`Dya@#!SRG@j^ zE1|WE8i)3%atNG3Ab*Cl5K#bwd#i|szs?vm^m2g=k+G<*-&a?cC;hV< zR-Kl7h4Tu^Q&=l#{x^&0_`V|sC~iDM;~--@=+-4HQgFQf4XCucJXPxpbNln9q4&4c zW{Pu~o@OSoxFI9Hn6`9jcs>*zl0fTkYseO`X~>s!=ua8 z#=$`;$TJ*yDvC3`T)=N5?`Tr|%w8*uz%TQd&GuRir?0HpgVpqxC!N3F%)v*c*VXJx zECLn7{#tm=-?`{$hRKhCS+L$gr1;S@UzNbA%=jyti5frwGV!M+AZkAm3xhMd8(#`^ z0gqVe`x4-+>D3*fvJhZCC>+o>p!Sa{Kho5P+;F4IXXjVr37f=od;0PN?z$RZIpa?Q zAbpnO>huXC@ARWacZtrau+K|L3Xf;{O&)IEkHfbeR#3dYpf_y{I{7jSePcgMXhNq! z3Dc7bt=COt5={wayY1QR*qgotrW;2Y$J}s6lWTT|5BJFJPjW0a9fu0o`izCy^i`G^ zH-E|Aw$i5@I{5t)PqgfpbzobF{j=JiKF_Q0RDksd5}@cql99njh!=Kn!Qs4^oOO_e ziIcG%o(Q)+XNLRi+%0t7+bP5*qrikiE0nEgl18=6_f~y$uRO+ZPQQPMJ#w2_3%0WF zX=eIOYj8%&}muby#iZ-I?+P3oo9u2QBGi;oK5%&rD3M zXF3;gi}hSL*GsjT?&hOG1*CJE$%QQV1wzAPbNZl-a%)WFO%&tVfq+yGq*_G`h`7SS zHtIaRL9@BMKi;omb@2W*>pGwxGg>4`-Y6|%S|yK;HczzK-y?DitT3?@4xdeQaCdv) zR#>Nh`O7>*W5mDwB{yPL(1u)xr776i>D_fZ1Ex`!_9fiO6XecdNFP@2sM9CEOUoF} zi%NaGyon(@Yo_8_&qQQSPabx23tqrS-qfz#5R}czgVs+A@8|bnfRMY4%d*j}6#7$e zJ%cOJ9DQM9zufz7PPf4bcOTlSs+yLAxd1x1yc%PX?@kk7*>CG6I z^{n=o;6mGZe8Aj}$&`0O9N^N<<^n{=QongD^NKOBBI zc{t5<05=7Q!*b;c> zvq#103mj{f(vfnH0mb)~?l|Dv|G4XvUq9MQa^J_GZ;PZx zj{VR!Qlz7u_Ptn^a2Oj*P<%ETvfTM16ZYq(#Ty~QJ>%KU@_amWcD5FK)3+RcR$Gl< zVvM9`fxkLu0y<}XEktA+afwzuNwnyraqIeDC++LUD2q2jPkY#xWN)jjNelK{QxlfK zlVSl7AyRCKW07)HhuComjFw1Y^qEUpoQZ#7mLCf1kO){DvGE$`1izWW422R69D@h{b% z-4BSUr*ZGzZO@sM(}svP`;HTL|8I;{o3mO)YZDti4=t71FJnl^_OkRp3=;|?FzGin z80y+M9yd@zWz}qIUxh0=A0YaP!?JUe1 z{(4oW8chZJl;L!6erXvW>eMJY%3}u~$B4O?KwSG85p!&tc~M61(uK8!8dw>YLVH(6 zXfeGC3MisvoLfjeEnYm%@~jLvIg<{~@S0^U?Nm9@^c)Jz813j85Cj>DfS3^#8eYG6 z4-HTEsV@klkqq{w5QB|17FtRJ#{xac#zRX`4hU!xxlNsHKl53i564DX?j18t9>CNX+THB9<~ZMnG2H(>Eg$q|;sDk%O)cAI z{t!IGg>I`zmzweMc;tK|qUoThQ_nH7K3*HSJZE@NpdTaUvOhr3De9U_Mj z>3Cci1Io1aIwF-6PjL7Ob3-HASyM_%FGQp7B`Mx9Upv_}2Vdu3iAT-vCeNdJ7*7Am z?}hw3@wi?sw@;tw#3Xc1+Gu(b%Jw#-UJrJ&Q8VUwHN;|TN`NX{7FcFxGBD|ls)A(Q zcWRflDUU@XZKG6LhPNmVW!|{-U(nj_e8Im7Gcu+>6^^sLQO*sk%YIKr!cV`A;i6Dy z2LJo1JjdZ70kLR0;77Raxp1r|mPMR5T7vPRy%~I&MJ{XL(xug0xoNXD;3yx=6<|=$~*@ zyK_yV4!0gYJE02p=LhY-Fk;KI`W;>k@yYu>Z~@N1wXK#nk0-BQzkMR7 zx9I`^j|U?|sHI=sj5@t@kLq%vhO@}`{1K{IY^^9X>lVh3Onr!Bxa7qV)zrN9Bqal? z?iDX3l=x~Xm(FvN_9q$~b$3sWS>JLByfGw)=;8$wqzjpv|>FGeLCAFzYlH z9I-yZkvqpLb(*a2_?C$h^up-%-igCgE-y+DSklLAb%wk&S88_Dg1+mivH*xWW*fWS zbcv|alNd4VF`P1UV735=1hf5(&4{r!_VX21oJ7$Y6}W@)B8Ni>yvEdcD#_u=Ir|$a zQu#76pwj6Na_20Mif6#4KiF$#`doc1gf40+4Al1|x4`8hyn%2})}n(SP?%B~$>nU- zSIo1{!hljNkAH95BZLFApb6g(zAKka@$9^^M4xxr$ z*3@)6^m#Bbr-i4f(PZT76OvsrYG}zpfmj19d({arBPNi+$_)5NAlHoe%FQh zs#&2fD60D-F|Ut}K~Gcl5%&OgI`o$`Y~?1*g{|R0+I7KW;J3trU=sXv*9M5VOD(wm zh+7r4jjUjHg1fTeirgZoW(x}rN~CxsmjNrm)UTOsU1cnS5HA1r?5PwY8MaLCK^IQK zDn}405R^@%RQE5CHR2}l+#`!ckWN?&f=lq#oea}myLxzh@A&v-;~W1P9^YdqSp#Ql z8+C@dV+qfA7;IVd3Vi1N9eB+PFV#o(MREiT%h+7o)AW3RwC}H!%w|DH0Uc&~I2lXr zzSy!=)wrt2;aAOTsm0H~=&U|9pFQMKP`=tncxLg}_GD<|DNKnHzc$l=LKiS_s0_>s zIKf|IKosHd2kYLU_!lZR&%i?#dpgFzS-9tQuvbTc^a>&9&+~yw@Kig3kVK*S9|Vbp zQ%jJ{LZlk-0yW*wt#R+$lj=*C|1~J_0+g2vHNjprL62|n6VS2Lp>BiPlwIr!2EztB zB6!^YIPJv*2i5YxraceC{`3}RXNll~PKwyyEkP)4@Fd}@A$LWH6R%`fTW$#^QmF(Y(2!_LRqt)Q&tLlI_|Ni?&6KKRq&!GDi<_YN=D zaX}jeYoh}$-yAN_#d_$r&++&r8!lIeKOMY%+d%yI&oAD+qLu*#+m@t6DHy0cA!U{T zEWuSz1xC#Ae}*Q!us~5@@A-f{)1FBn2lBdcUP<6H1+iTd>QY=Kw;om@ef{R`0k3bt zpdjL1UQh5*xeS2d47Xnz2C4r(>A*tSM9Ezg$`ys3EQIaD2Dx(fneYntT8!XQ;3XKV zEH;PhBtiO9->3pmhXq@MI1f5gI#?7YsD%*!(XixP(&ui$g*GosLUJj7A%CDew}E1F5fg`X3-EQn~0H-~O@Sr|cWas4BS) zcN_))%#T7UZe4dfqN)f7n%ygM9Wtj7P<4s_bZAthKU7oXwo_8CKq`#Dt3k}qm7Hhm}QkDU?9KbTX1-r_C}#^4@= zBfIayVT%;-@?tsA5^Po0rj!P6$OLR}*LMx+WbaUx1@h?K@%1`Bz97TL33X88(YID- zu~$IF!2h8Ip+uIk=-r^43k;{1RD@8T!f~!h((jsBYCsp@p=V^8N z^r1O#*yZ{R)%p4(d~{u!QnFv6f9RyVYHeBT!O1=AsC=vS$@RkV1O@g zzXoW$sP=0ya2g8>zK=LyK}dBheeF{txUBW~wAH2ojj=Aw?m&g!&iDzpHADYQ4|DMd ziNV(Ge~)Jb3p5O%Nkq=9@DgnGw#rT72#8b7p&&K2BsXya@0;M;62BG6Y@!!MU^fF3 z_!2-Rc;%aQ4_C^oQ@fzMZSb*DXeVbNn9^)f0n|pNY&~U)@ zSlwp^i2hN9nqaN`j3WZsy^f80DD`3p$*t-maKOG2G=kBo?TS8ZPC9%;J;NhTfbdj$ zi11Y25oCh3YCCilit24_LcneUjS{A0UY`)(EY5Wh+FYD`bPh60aiK!b4#CJHy)1Zj zjJ=g!==pm|)BfU4w2-Pehj{?tBa!czhwTQzPwg%UMA(wRCHSh;KjQiWUl)NjXis?h zA`pRz-zYh9#*iY{iUj$(0djYFH^D^r)vHdcM@8SMC1Uk^1_mHUaw{Ps3tf`CXXp)Q zr2xWUXy3<^p$>hks=kl9h^KeefP;|cIbKP|)zcL~&ShMfM4%5CBW3f7FSAtFa+X*Hr zApmb!$Aket32#h!DuJ$h8qncYjrV|`C*m(#ozg7J?_rkm=JYwTh+p7|u47@cVj{YJ zD?L-2-rg{67W7A>PH@3p4zvVYl}M+(&iLVD z+zAlHNB6ot3d|IE#GCRGqN@a=m3mue3~JB*YJ!8xhCc*H5mgA|AB#?+C-iw+xdEJ1 zYCXhF29^)MX3Kz;V5*XU63TCUcPzekss}DCINVz{V$F#;DtR_2$K$y;qy$TqB&3KG z_z4y){49A>_vR;4!Q?w8lc~|;wDGXw<&5X734oPTKj3DsCXoDok_H@jS1887ql}xDW(;@>D+4qBQ}j?f{J2fk~B|lf6v*e z#Y}WkT>2%}9+;pH%Zs;u@fL+spFLUtSlP>%E1o5^P6@HqUF!D9_we4>1*H7cIS_e| z;i7O73{_vU*K#&2W!R+T=FuD>yW8B`OyI5E*P^Px;e=cO^s9rXE?}o+z^Y^FYlyv< zN`@k}VREo{ibh{d)aqE4uQjs)%^F0@>IUA41;HfvDK}E31>qv|ego3U+|~T8l1HR; zHV)m$eyJA(li;Vk=q*b9GT5(OOqyP`U3DhuyjWe7XBE@Evlg0b!_ zF-DVu4MZS`&4Lak%Jqdb1lmlOz5yt^a$*+qmH z^So8uc!nNb^5(;YlVGv#3?RWt_X>^PxE??Wg1(0P!e^&F+K^jm)r!TFXaZ5;#lbB2 zdI~NECBaU2pd%02gx)jL9_xlzG~U2qnq%k)(E`a3C1unOYINdi_6RNvD8W&A(%4SV z(5)AD9#D|$+Wx+Rcgv)ls*#N`Y4Rm-eGQ9j=UbDt)q}W)C4frsRLNminLF{6m9kjj zlU1Q`X}K@nf#7z;hYU+v!g)#tU~nTKAYM7<0+ryXvI63N1nW2!kM&Pa4ZXOkf-vaz z9?8QuxEEf*wQWq5p9y@`X~IAP#uJxV)xjPBKTf(m z)N-=HR=AWQAYRCwC5FbOgP*qt9umo3?lrE#gw5>20GFOsu&El1!)!QAgs60W*iH{ty zgYCRHqy$UV@!eLDT|)VYU}1+sZGFAj9Yn{G6>RIppd{F-RCI7n`vAzl;cx(v4Hb(1 zN%H8|L4^v(*3Qj!K1cft1TI3|ZnhxbJyR|NRt?i_?>`1E{)7NG+SC9qi*Q=vmV|b% z2%j~DM9rkI_rVZv`X13GfJ*QTbZ8*QV(m|$_*q1t&a+XA(dlgn7jeQdNF5dK*REbr zLMMULmtGK7f~iV(xV>@pbgQQPslEbTV!iHS*IUjs$a|7516G2mN_W>VI@mZSi@~NT z)aKBv9zLf-73k8$Kwpu^bZ%HsR-aQ%t-(vMRT+;=g^{I`Q#Gv^s!`OifI}W^BR7SB zQ5T1lV5ySc?i9maRDyG?h^&hYk39UXp{^(D0>D7t-#YRp9^7p-=(Ijew~`Dg_5`-O z2o`=3@R)^F)_5F{oGy{20@5DeMS)qQGx)09$M~|P#Nx#9o;aSsH!=s~6s8%niLhn# zHfdE>Pyl(4>%xE%9#H+=i6TFk|D^tw_x(d``SU(J;}1T5l=K&VYXX4RynL}&Lb)OM z@s5*l{x%fZQUX9#ZxPa5!* zRE>k8LE1u~k6_+K*s9zx{ZvjH=pSu#08hyI!4Pd}DD6NcIO?7NwY<&Mt-CMl!|bu9 z$)*iTVgunLi0;!yGdL<2fkcFxpmTaoZs@sgRUw9Ij zyI|)m0aQX!Jkg(DYmMC)$S{+lL-7gh4JVqiKaStCi z#}mmfcxSfHJ7PAt>cW(0oSd}Tz%we(`OUN(XbHCAev+FzZ^T$-L|HI*&-8wDJP>dq zaGvGy`grIRY_;9Dg9|!WAIG}a~T_1#Q(NN)dNQwkVVFs%s zg!$nM14?jIJ~N<$#ncaycl4abdZPqTqf<$pG>8pmxFFD1rb$i$(ZO5bF>K*iHX#s9 z_xk0*t2amX%;k?L)#Lejxlj}A_4GFNj6}M9=>`+8f1W_l6N{7Y;i^Xeqii6?snKSp z0o)`4%}#!H^SqOctY;9R^zFznE(NJO29qd%c&3Mwu|iov2x#Ui6NUd8z8qubMCjSV>HkDn75k&4GNy0@{ui! zj6fE$!RfGSwE`t_Az+|7!DaPGpU*yIMtE{I*W~Icu#yu*@q8E@d4bVoCTKuR&!~R--9^E3X#+IiVgTZwLa7Kvx@e+|zXE3Z%iygAk5zl--t;HcFSSs~T|M8*G ztM5)bk0^NkAHnO315EJMRRDK7eKlB&_|y8^`)c!$utV4A!f;p=Md{8kFZ5w!g8;t5 znMQ+n;5JwSs02^t9W)i_T%Ad&TXC##e@68c{9XP7YKn>V+G+7HIpA@>D9eDAV5=%f&caJNYJ22UqkuuP1Y zhBpQ4z7${yuBuDk4xYS_!Ii9=OTmYFwKSLs+Ny|J6Gj6!RO4XBYC9g4(q+VT%20x<6Kur@_4o_XM!_r{Z(BARBdArqo;3DqjHZl;X z!gyf{z)SH@{ADAD%e8}-1uwx^b#BlFj0chB?8}kgpxXzzp~WMz&KBejcAz~hgrNXN z=NX(&e;??{Y?RGk*{UL!o!&JV0~D|0?*d~T@@5O*FoCa$CN|G8%Yc<&stg{u9q6NB zPbyTTLln{qDXS&;H>w;Yz+oCdXZP6&v5oX2nppb|V)_hL*H8nWUR$qYR702*A6 zx?yZ;@qs$b4ZYDj-sD<@#z=E54b36o@3&%@pn(S570dBO;UpO9>Tn!LyVGAkG~uJ7 z<|D>J>P-Ww7cM*j$M-vA8JQA{#ta)3g0X<0V*i@gNr^?B8(4y;t_~?EMr@R&CY^v9 z**I`i!M=(+k0_Tht#O!#{W}VffOzPux(!-_sp`h99*X8-1;zi3m|;o-$_Q(I!qstT zN_H9i+s@Gj$-*R$K(fsRiTJlkd8^CAfn`t{+#ky81q zV)+#%NkC;9`|-Ztn==C=qF)0<>i`pcRZn);YKJoxHXN0nuJ0?b#PFfD0pbBxr7;Q~ zzKw54vw!%S@4dovcX)pJ1WYE2Bc<@p?9D|ED9%~p=t{%gH9X$`qFY|#du3_N{@?l zBdhPJsBlP}z7mJ?k~N(LR)VE!3fdjep(CDGUNrscp`}o|_5lqSfl4hNhDu<|<1<=|7z|L~PgSQk3O4!TkP<9a!gtTB`#-%oJQC+W(^`X~#2!h+K>;In z#XG~j;>6NAAmM^w68u!IWA3DmPlDpk&@?fA6=cMj{2knY%-Vyvp&qjYPzjz{sV<^L zNNHOHikP=j-5YFFv{_rd-!dUT+!9~`~;`2ejketvP} z!|X*E8^<@rTpxF8B#pqAX`&bHM)m|*7Q6&wm3qQl=JE#XuvGn|ZjT?&nP~B7^D#x9 zm<43}NcIKH$XC}8H={wT%gXs4;U$5qU_9I8RsAMYThnMNd- znya=mZRj;A5IW0+nqaT|@fMc@Bcx4`P6flVQ-#%-BA!gzjs~c4id%mh{t22i+H~>` z`kvU!ftFyaykXBe6OtL;@oh#dFMrgN7lEb*e)dDuwcT=+@Eqvr3* z-pVC2G5)ioPxUbwK#)8P7p4T1@JWbvD9&x+Z>aXf9EQMw15M$2UUtm23bAQC5-kJZN=KbB*o%>6YH>&jmU_xtX#@nxZQlaD z&J`KQVE~F+2R+fG6UrK)toy*T?2^DG`07ay2`Su1eW*F4Ji-Zo7?=r6{4thX#50NP z1lXHb=I)GLh$%b_F33v-n&7UdzC(n5(QBjuqa4C8kWGcJ>+rniA87whgX0-_&3?5= zWuvdbZC_{Rb=NT1(xo5`Sx%VKhtL6~NmKyqT_~yr-K7HWMA+Gf4yW1IeO4q3S#uLZjH?jT( z;dsk|mSC&*axAF95PKZb8g-#9y&0efU%cZKhreD$RGT;Cr-+K!WQkA{>{U|%_Ml=A zi%FWw^4r57@mR(aS4US)Uw0M|MzGbE3$>2@u5$UIv)OnpfZ5n$)cXK=^av_0=nvhN zhXI;6pq>H9%7a%VvZwdrkPX-QrM)#*jYpu>3N_z?D7y3Dk~?$ zHE37ZMeg!~W8A}nJpBf??g8-;LjN<%(v$Qi4B8WUInWYpRp)m86ynHKXc)FegZ}6_ z105je)nzf!HmeG)8nbe@7wghxR@I3PKZv'pBT+wd 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

m=V-W#go;Xob4Im}>`|Z2r`~ z0=G8TkUuLMCw*mC41?Yr6MGuI$d9YCane_oi(P=7pl|DyI)QKBRrkxR!81QhaLDo} z%(E~lcd?!09|f4PvPc;-Zcf6yQ@H%dfrX;%=n8MTVg38~?Pgr}@4r8z+5bcd@~c z%7+=2?`u%iS4HEbuSmDI(4qWMhcEXPQ~_}f`LnWd(pOg242EzHa`0^S4_ukG+U@Q& zGxJdUG7C7c@4EJ;|0Mtx#xnUs*XffaQgmUgV$lHLdEa zqH(FON8ZKHjzWIGKeBxVB}o2hUxC}JeI-9C8z+6K#0o#Z{&X`I|4%;DzTV}>RoOV{ zOXW*Rj$QYzk$oH&QT)g4A~Mrp7lD62nmB{JY$&e&fXAs;pb73OuS(qr&h9_NEHu=_ z2B_rlAKO43kmTp`P!sG`0?xu7f>$mPU~Q)7zgA7am9h;MO-4{j{b&#?0Zzt{m8`6R z^v!jK%K=1<3kRKd;cC@G$KW33FJUAf>{cYDHTZhe-RJzd4!i{8tb7i8v!08zydaC% z1p_bCYo)olx&2^^_h-g=B}{7)!3h5_o{$T}OEAt#`LF|%bk68>7PCAd=YEv*ot5SY zm;M4HJ7YWoNfcZ*hy7GGPWsA9bGV|M(_SL~RO)@nkFT=7qAfsrUVwk zf|)%DA?>*Rwl*EfAsLvktaz&jXo7npfvhc6GivZ81A#*+bNlGc@8Pm#vZNKgE84~F zYdH+1bX*Hqf~(4&K;p}Z8Nxw4dqH!tA>mBuyljxS&fQ9K2m#r9a5X61(K}vQA83Mm zB84u|KaNQZ-lRp$cvRu8t6xkFX7COQbGtj-7X2>4Ad*GMglsJQ=Kh>_Y^0nq?RVQ# zGp}$zv|DDtk3?jJ&l7wic?Flg;sjVA|E6f4&N?VIb9xUm49li4f>7Zsz8`n7UhR(}@026)5XUi_6NXmv0Ne(~ym0cj)`C&l;B z4r!QnCO^O0hXe6r0LqMzCF%(Stq!J)pLfF!<|(a_nthqT(la8PH{SWVusgm@Q!u`{ zIv@5CRt>@OnK#qO(_xk`xz?@t(v++XEx|Tg%fxs*Mf^8pN*gC8sk0TFNnCo=P7f}_ zFmv5x*ml|P6O2^968fEZ`jMBP9sTaZ&nt2BI)D-!bzOguxZ)op*V0Cyf^{G6{`|I= zWC*&HDiC)xCE~v@7yO`$|KdO@0PS!kO2_j-4WJS{bqPr}bgmH73)A?HdUUCfq%J0y z38w^_R!urRcrP=7dhm(IwESizU}aprqn{%lXm>nBzE6iLwn{D5E5mqfUGA)9+xZb zkfKTsC<=+lh0!DjL*PhD^SAaR6 zlvANK?z*rj98abr5ut`}J-5PYwIDnS>#YvC#;T_)d#hRm>~^$f3TxeDVHtBqDDX%^?e=6!qvM zLhkmPADb+8j6qT9;rxre`?h(??LDsJRTsQ6g&!#sb0J$Ug`Xkj6QY2rExEr#Tr>m0 zxIojSpZ!Sk9;g=fp3b}8u&yR`doQZRHQ2;B31H@h8VF7;t(!VvC5S(Y5myxrO2X}T zDBmelCh$7(Gb>(~z#nWX`yEda z6J+PiS`%?#mHin#7zNOTHe*rvRK*2Sz&?HZCh${T8&HCya+*noYS~^+&CsNMD3j=L zT$12FOdNs~z?!DcAD_zG?@^Eh$J+Bu%0FO=5FI4{L!%G;=_j=oUDKA{JWN3{-E38u<-+(~T;0OJ$Gl$@~3 ze?{giV;w;@Vcg}kWs#Wlb=DgPEdv>{HlQ+&{l-Le~|R4+84iRoL7T@s60p6<{SzYI%>S|=k3@082Du{xLpKa~YUsA2Ri{>pz5e%#u-lZIsLMTXZh zN=tp2V4=DSyG133*^?YyYnBmN_Tw@x@jY$h)jGH=`*DJco-~9mpQ~|UfjY*|p1~oZ z{rToDlbdqB%G6l^gw=8kAZIS};1V2TDSKUwqp-C(w$V|!jM`FPCRoIB7ir3>L^rUY z4MD1xz&`=W&dZ1_`*DIxEPKb*xEML();#r5rnd>TJDK;DAS77D68N|pE14(MLi?Pu z&%$3Ny~nb5!ZdRF&&e64mZO^;yc@;O5!r{jBPdJh=D5Q52}ZGGo@VJmO;I!i;6>?2 z&&rJOTlV7wmskpaor?<{i)L`}DgY9kVwwDHE>7ksI0LKIK$P+F_s+65-pN==jU23gv~l^Rw~F7>Tq1Cd!s9>#NR98R!4 ztOV0YD62p;znJtPrZ!s9L4J;Mx`{>FCp`vY&yEM%P8Ds2eI$Q}Rm;&Pn8rdr0%@1~ zJi#XrGZvq&QEzi|)k2IhQk2r2P3}-RUpbtX2T{grR~PWHDI=OYf@WSNaAL*eFU9f6 z`lCS*zx9xa7M{xRJB2?(sB6~@Ho-sGmHdqVokK0p$-(Ocp04g?5I4~ohDKYp zkz+p81bf|w-hwBY!q!&z2`qf+n*>UhIxfW~rc)h+3MOJ(;t@`lreXVffE z14Dk>lH08btfM77Rs@mY6-fmPbXda6dJG!O-oCepfk4%GEej&SD_Wg!C1`?|K#NPL zA;lA4plpId!F1WeOW=bDa^6KWx_?G3i$OQ=%H$lc4kf`(*ShkK|E0kq^bPtmHZD!# z_Qqv-_Izvkt?HAcUtOgE3Cy*MU$OR%Stf@jbzE+WVlBI-fpj)WShR@1hK2m-- zVPqoyA2l3rkl^;_O7f~v=0C z3RZ%jYL3n+r?_IOH8@4!mXq1n5tVrMC%8Z3Mohv}A0rl*R(1Ag3N9YUxffzCn(nD@lV2aShI~4sUQ! zV|8mfs(8xQ0V}~&wIJQr0#b#~k}s9pPB1zf{Nt)HVj3_vJgJ9{B@EBO)ulq!+k8L9 zI$)JBMNGeztT6ZQ8{>Ngya(PqdG%3i+B(cz@cPB+UV;u#D4hxKF-^#)f;(#NWggW! zV5O+)K8rhF4ZB6~t*w{3sj!R7JoLd+_ z0X-i+{n2u)30#V>st!s+GusLB5?OZNajv3kv}Z>2mz)&D6J!loDXO|}SkgsoNl$a~ zfm!hq&Z!Il&$eNkNn%Zs6VI(VK+aJ{-7Oadnj)+liTF^497mr6crn9w=SHf-VtV03 z?=}l_aCcr>^jql#*_~OIIsHoB*ytp048Kz2Y8CT zYES4-2xJ5%B-IrXfPqtv=*AjO0s6P9I@Avlxe_11V1VD6zaM=1JI^Y0!%c^vTO8)w zqvY^ElPO^7ZaWRsMNDWzfIT?JIJfnJvX`8K97sDQ7O=Z5T^M{a0$*k?j#{%-y)g-I zhDdG?-H^pOEY=LW#O^KoAU1N9LZ0%q085e8y-!kypWc$9(hZB%?c1lf0@XyCSdFsO z&MKFwUe?@f>XIr&arKu7J7V(-9~$oS`IXYYg4~%qBYIuPz*czuWTf@)#C;3~5xH;V(=V z!xH2;Gl)iD@f5%o(fcmq(RNaP>^dwzx1EpmQ5Uf}QJWim;kJo8CHK%F=l-@xNp1-g5(h59VYw!7DZ;8~VYJhMgh8`70^MXM z2#1Y~qcfVMfK|(IoOdnJpPbl;mF?zXeAKO447Yw8>%-kW$e`{RmtM?H7OVY%Qwn-AZY{w^tdj$V9C69tt7(xh=Z4a7mUV1wM-boPH|UJX%hpU zvCr@zZJ%5Cd~4z6B=45)rEU`8qiWM+M3ZQBFh~p>Xv7N~KJd)?&I!dfWu5sWYE*#? zhVF*EF!+QZ-jfUaW8j@&T#zhva5W+pltH^cMU_Jg0Bee3{4k> zoZ_vL)QJfo0Y0NzB6=Wxmo36C1Kz_(;swr3u<5Q0AVo@r#R+#OlR`lXqd;J=6sVDQ zu0y!84?jnh2$uXTML>m$Kze7G5hfTiTB~@+u#$1NHG+ytyNoEXT#)zSH;xkxXvQ-v zn!?eaa~ud*NS4}Qrg*DJQ6UfX9G#4p^(+A>yMb9rB8faJ)&(y`StSXyN+bzg3c)fG(Nr~%dX^LL5qM`fH8c1H@%Q391PxY=YJRXafJzZnmVzVx zhzet92Z5MJEQZ+otR#bggR&{fXY5Gq**s8I)`yg$sT|}r!YJx2RC%H5n&dy@;393= z?@|<0zvcBoe=RyE>6LP@%Y{pSE&yD<}Dp6Y!1)+^1>hx)TYs7eVLr z2AR`&(A;*;j~4FS=Vp-3Tc|INZO$brlF>q@NJJu&7ls9Z7ycj_v3EWZ812&u7t2-a zTkmRm1-1V#q9Wl?XS@@!u;fA`*rt~KE=57LSpn6_qkxpdqag(F_%4!7wk9}|bT8w| z>#Kd8qNCf70KCYfLzPB}5iRBtN3QUFijs;sL8+fXNy&q`yTO)-Xb-Ga+<0`akl3n( z(<%T`q*SB{QdcojSZa{NOgaclHQA_y!u;lGhbo+;!$I7kF3 zk5goH;}Uq+1{pe=L!D#h;M|}qTczM*DL9VD3dzrCo|LLH+NE8@vThQ0(Yj(0JCd_~ zJ(Wu+n%Yc7=`t~w`!qo$_D^a|V?_MCVjl=D!AktJ@KQ}<`Qm;7YGSm(Qu@M8)LiAbGmeiYbvxK&Kl~a%rHHD)AwJSQXkak5 zNixiC3=@lNj7GUUn+{CHYwVQZQ5+(mAA3xp{8oZXcWbq}1e>Vo#YwstQOjC@7aGhCqA3(;W{=CYJ$J+~1oFEYxx!Zkn50JB{<3Nw9g; z0xU&V#cgi@1xM=6;57G*Wi#ZA*MPT++C9A>gdfax^ujay+JI6dRbYGAln}d3gR5|7Z94*qGT2@0ePKIJ% zwZ_nDBs_-B9IxL#J2Iyt{>B$ty%WdY@D8pncqz)tH)oAwl)VRTQDyM#vUJ063z60v z=5#p@a&JMBSSi;ycH(Uv=pGm#8^d$rn$q0dR}QnQ^{Rzyco8thR*yrfN%Q)+fKd`z zharGy<`}kdR&fl*iI`5VQM%VNT3zsx8Spt>AQ{{>sGkIi?SwmkxvM@8T(O#AZXAvR zZyL}D&>YS5YB`#KJkyl!i;F0m)`dQejIl$w?UOjy-pv8zi(WIiXM zt>RB2>&8fN#32F0yTLiD22d%Ys^n`ir+6v@`CZ+j47RzcVCNAQBnYQQC}aePXTim% zX)$Oix_T-QW-sx!)1>8owURo^f0>}sRHi<`?4MyF-Q~r`wKIy7R3_&rDu41+ZmK~U z&rrF6fTf4U^SGUPqG2Z^JiCn^vm1#&yJZ;?Xl=c zoL%Ovfq6(yFN1=OPH)}*htpeZ5TTy|X-5+QcH^@0D+cdBuwEgz|3NR{|K`6;HKJzI zGqavio$Y)xWF8BPAXDx8)TqrwJiadS$`ZdBWjzvai zu2*KYNkDI@%5wDQX%8n&n)kx6)zae>fb#h1WMhMY7|r6|JwMy=)AVy?v(pLAVsJ+> zK(+wnF$xfcfb#ECkUG7mFk(4sg@D4R>E}vper~YYE)6Muo`TR5{pkd`m4lP6`#b$a z&q<`{TQxE%5H83xxWs1CD7L`;*x^Gr3%`>8WTbB(r1(oKU&v(b$)WDDs zg)|4DS^m$u`^v&1Payt^K?{B?Yl2DXt&2pGkVf+z90>Vbu))Rfn90P*Iecj5#pAag zloUNR4#X~=SgJNQjYxR9$?CEDyYsaJhkE?h1d|}>({%tP>rXZ67@?;`!=y>z`+X+{ z>=D9FKcs?3a7{2Ng1UjSXj0@(j&j>%Ju;Xz=-O(Z(DSbQ@GzwudIHHUM{SSd+JI6d zb(1!>WC_%1w_uJN8}$ZM5f5O=XvxqLBO(0?;XuYM_#t{UYXFrZs_Fn_5a-wB9xmP= zy?gZsVCDAnNc$;l2m~F>$I#6rbG65`4p=Fwy8oDDr7hGF>$W~SC7uM!C})ebO}g?< z1V^ZFJ%!iuyO-~dUcG#CB!WzAjyy_CuaJow>|{g-u<6SsA4+-fmhI`g59Uu#n3}+) z2mtpK*==3;pVJ^k!UgK5YC7aMGLJDDMeG4#R*u=8XSz(#_k!VhoG!O z)-DjSP8vg~C#yZ6tpw0+gbg)NI^Zexx>jtw0N2X|{xcw{V+C+N_@dvt{4{~B$CSS% z@o{KG*rbdBd`dasv9AYOimt8~v#ybq-*M{6%hyNG-@bqS-dMrO4{qI{T|A zXqY|87(VVYTkLrs%8I2K2eP zq0Fo~ECRJzl*Z;Xf{o^SXwoi|xSnD>{Jv9N{9;6gGJ;P zgW>xWFmXzcRliSBijw^|n?5zcksRbj!?9TEbkn-fAM#vpb_vt~fUe_kGU}e^=d}T) zNb3ST6Qk5!j~O%C;Vvzle9SZ{n@VB%)=6R&7&9Rxs65gGJsfo=z5Z-e&?8i2Z22_T z=8+O8iy)PQm7wP{BRqvZip>e?2V?@4Di38Q_-B zkMJHzCwK>8oC4kTgJ_K=Z={PtF@b?79Y8CdD-R4t_np@ODn(SqEtFQ|^e$r>Fh*sA z6sT%0E_Dew62SvfR*h2n?BepSV^7HP_gxlcA(ubz7t_sfKt4RWtLVGFzTBYma z(k&~?TMGbBu~*dvw~0o#LJnegF?~}!d-?OrlVjDZa94qLT=7)%%IyOm;(DN^=&Gco z%B*O~T_~KdhSv`e6D|y47z;)b#emQF&RUJ*j}2M>hM7o^ z*;2s|mFs<%8Z`E8+T!7|!E@;*mw7X)QDRhUn!RwTfL+3Ba4^{#RVl3OTQAfUecck! z5pEcu)U$kjKsZuXpJQkco{&1Ik3|7yP6=Z!Je>AnG-AC{3JA{ub;C`Epcf_R$_7rI zQQ1WD`DqU)SbLWRLWUXPMbg_3I@&o7vXP#+C@gtZk;XN0Z5{i4L6USV{*qBT~e!omT#w&c9BBHy)>BMCIGs56>;&KK0o+%(CW8h<4XG0Fl z?;$!X0!We4J>Yc0?wiH0e=QW)@@PpaLG#jHdcNNhrscV#3c(tHCCK`yUx(~p|5`@Y z28WyOAtw0C7Rfmu*|mVB$m)3x4EhUC^W?I#pMJV4$ELII@r&}UkdupCc43G*q$*>I zYO@{CL}&$r=YbHaT}D6sA#;3BW+m9W`7(pP}4#x;E>a}|` z&W7$6wE#%!cMMc-j(`PW)zF=UG`S%1nBhGg?To?l?<3mhZ zA6G}nmh(38;hvY)29zSHY)|JC&7SA7QgOAOwGoH|8u0`#IXCF4#AR>&(mi^WAndAb zYZ&WHa4C|?>g>VMC`^T1ex8C*2K@Qe+utEI-`n>`rxQC7jdUWMB^&zKxIOAY6S$OU zK&eIMnK4E@)$Fq=W z=HO&?IR;fQ+alCF90y14_*!5!O%N+ehT$(!h)~U7(*fwd@3239`G3g>h`kF()(954 zY^FUAxXN&tmx_V%D6SZgvkq7Zs{V$R;2oMIb{DL|DuFW$aZ26JQQp@F^%+;I($Lk01T#|?ycA`XQAVWF1I7G%YEoyAS7FK${|G$>n%w3CnDyG-9^9oc0`L>Q z^_*N2xD?^w;B<=HR9s-Tp^!Mc{&)zf7Pv{lP#KtzL_zU5lHXT@kfNocmq0-ePBxSpwT*ke$jSCC{*m{`}9@`8@`_j;hE=&HW@`pL^zPhT88{m0YE3r;ob!Q#GA zBlqtcfz$rfZGSc;l6`9JxhDzZf-O+bGakrH0XL}TpLh| zr0yEzB_1v^bjiF*0qIVFjX?OuY(Ig>|1ju%GpbAQa3ZiXx%s%-qd zm3~1V%Y2h|trGU#G3#FVe<$3AP~(2kp@X9J%Qd1m>U^26((YAazWe1FiN#(om?vFz zSIlTA-W~6UXV+D}O;J(#c>Ln%)hkqtLC&k{HE8R|*qz#V{Dr)~7LXJWrP%vOhzpyv}E z5bzU!KXlgphJ(;uWGLbUi+w@lmJJ|~l+CP&;yJwpz%rbGaU3@vSc;%Zbix;C@Qf8h zd%$+387&d$NsQ#mKvLvX-V-^!TRR(1&&}4dEd3OOrJe#>hl08j5J^Wlg-jiTGi%&0 zG#JEkf}gRNhHHRHsi?aF5e&J^m)ybq@&)u;;L0m<;{`*EW2~0_Hbq4x9_?#9TaWGT z^we1fGzlog+ND}I)$A%aF9>992Z^8SfR&;eNjsU&-ek&K44ijQsCS6iQ~LlVA?afc zhcV$+_&h}@mULVK79nq>U?2$co?!)_eSg>DX|yt+SB+8*fL$Tq+m(?5OAtKJqCAez z&SatxtKe~k-<6x`0NH=G$i^s=oED7~kXx}CaQ2&jj!@6Ih#W++4`ykEXxdpkv(qRW zFRtwJX#Wr<&o+Y&U|2Ltkmlq4gTp(AvI-lTo|m{*aWMcLR6s&*7dfVTYS#iRWr#@d zxDy|AU{{Jk;>}!?tfLdvhLYS_^3yUR+ncJ*{rCp{8bc_S)-(loAm(JWk%wfsH>h~1 zr-ovq&4h}OM4nb_fJhNjc?k0bLRm$E^t(uGXLk+Jp+K;&DByub4a8VC0a%aZ{7P>% zkJ&;nELRee<+B7{ie~J>z3tOpoKEOte2>cpsuk&n%_Ew<{QIN}?~~V9e~Q)sks=ld z37w+Qx53;cuP{e5fUGh}KIugRNmiLmi#}sACj(xTwVniLFS(r3hYRU@|r^@{(Dd;H|6Hpm%Lb?M2MB^rtBzx&kqJrV0GW}K}r05x~XWx?97EO0AO(|vo}=dy@NYm`WxK_q51pqf%=&05r=c?~Bf z`8qq?E9_IZ|wf;AhQyBE0;>uL&kaP?u;hUD>TLJ4J?~jsM7*Z*0z( z`C#>i#AR5R7cXw&8+PIc-EVXglS-_W(_aP=&VD1B{Svr@#6Ahb(&Apm#G{&H;`Mfq zJh&9$+^#I!#gaRSZt07EoFKEOqKPuk+A5b9om7lP&+|*EE_f-*JI)7t%w&Swd%+sR zL?US=eN9b8PgBqlW?GvK7#V9L1+*MyCLUueK}gYzWYfZwO@vd1wD66hpsEFCg7?0j zd`^a!EWt(*EXF4ZJ#aZMVq1r~6@Z>58J2p((4k~aFe!qnf1Loc28_6@++?j$LtFN~ z*uaJUJ(D#J7aa7;c`PGoOr^c&)3t!4$my($O97%>nD)bBU=0zCKO2;to(omQTqGC_ zV>gI3!K4W4YQaKaIEgDZC|r-ZwyEYU$~+xO1RkrX;TJcAAotn2a8eX?+c9j#%M18} zx0%5dGj1`%AJlUhqy>i#iN2r#AI1U+gz^)-7LXJQEDuy&)exOr#Exy~X3~>irawcyk!=)Uhl< zuVQ7Piu4_pRbyB$P$AMcDHvsMxhO{|FLB_;5g(2`@@UKw#UEZD zy*W8HzHc}g*vd`D+HI13JSfahKTD9hwZTmBR-VVGacAZXjo7Z_w#@jZScg-tgHhMG z`H4^-p8pHd3XKmL_tzVEl97 zOb!RNp%@l1iwrrl-P*lh+&S0%-D6%8xD;VkiRI=7!T&JsjB#LrB|&%<8{(g*-2rR! z*~`T^bBRODWIeg_XOA+7T^r04Z&ln>7y9$m6jX*+t<4}nj9W;aO(PWyLe?d8)D;^$ zf|ratX4%~lc-IEAjQ7r_^0-(%s4r1ngQkwG)xC=wseyZP@T;g;u;r7$o^NXcmm;hz>p9SQRG(0F8d=o|Dxk6Hi8~2rJsBFMg~zxqcqz(y z`VhHmI2B3gEer7PG6P7mZo{hy)}bR6rGw}G^#;+$ON4v@W5-!M+S}Xz)#m>G-tNxU_Wu6% zuQr=oJ7`{PRzj@t1w5jV#-;cbe9I@Zz@pj3#jFPZ?|k>eAr8Oi$^#D(CfR}g?$Q3E z?|#5}pkcIISJ=d{%3*N_#~N`Hywl+yr@`^Y+z4c$K5EW`x)`8?0~JKKO(Fv3)sd4j zt%|Z}sb=2}t3Ora#rk4yh_@+ZalD2wTM1OtD^AnF=K<}n2oYv7Rb$RBsrg*^IZ`#7 zd#dNagwgH~C5OeCR7MySpSw2&rz%olW(@FPe?Le0A24;r1`qJ(B;dWpsNXy|*v&x$ zEF5hW8r2mhnFp>5@&~d^Wf=s3tx9a1FR=mot*(01Tg|O37aKfj*8zrScgA-Y8}?Rn zXD>JG^KQT27*B2(cV^6TOM>0q%7Mk+&-!x>NprL+`+&G96JDorP(# zx06F2d9A5jH>B*-YE;?J5*vlaSa7{z-OCZ5EKFx7^Yj)((XB4neV#{o^RcOFhL@J^w~wwNT(eu9k2KS4+yig-S(i`jd|2!7sp#~(qwh~ga|UAP zu`Bm2J6R@jdLWhEJ2170V%h6sa=PQcFE)_)84*rF>5a@{3VYeh3vlRd2H9I~poch~ zcdSP$`o%5+droWe5l-pIYXL2B)c@!J&l#n)gmRDv5YsbvrB3&JdU*)=khhbM;}iA%q*0^D367nkVwaasJY-2FdvQ@4W|Qy@(vMW`4@1abDYEKWz6L=m>uYW z2Am9kp)b85ZZkqGm!Q^xQrvB&-fLGXU(AFx>Q5#&m^kQ?v$^JLYs4V@1@ssNxvvwz zG+PeSHUgB@|2H?C{=c=eg)_na{{H6v);5aJQUBlE+xjo2|Kq-;+mD9zf5aa@6t5uU zc%d{#4iMB7W8kg1MaF@bj6E44o}}M0H&o`{WBlN|ABv~L>lf#>xLOeAGE(ahvk-X#{Mb?P&`F2KT`PP7n9Fz zYz`#2N(`Q0lllB0dL%pOsPwE;`WyNbT@tRwKxaBp(Rf+ag3*ttm&_VnRN?h^)IlD^p3R!qjZug1Q zibiC(x%6y`y%xvYs3DVb#80MD+`IIQ#d_tD>^mR<^K$Wrsjl&{eT8E){<{ezW~y+x|e4;2CTT6Ec7BNS0mv=qqao*hk|}4==7JQ>GgBPX^?k zE?J!c{Sq`Uzkh}{BxnwX79Tm8KDhbrT9-oG{tlkOuZ(K8-$(*qJQL#{fA-iT{wv<~ z_>CbMc*2~C{4r`>LMp_ja-WZ#TC$|Ns4e zIV!K#`Uk9;57*eHjYpZ?-@P}sV+&RxrAy|p%`n*4u$tm3N>8qE?E@Tc=`bR*P7ih> z+=1Iwch&3QK^bc=IG?;1;2H+X`uFAx9w?G4DXkFsvDrtj$@)nBk$(deIk zK0-Z}e>%BWG#XZRG&)0wzrjzpH=eykqL4T83JJm6+#~Tc54Sk|?!O1{KEkaDiII=_ zF^dm2K4B+=Ef1{F(`~r*Gf=;r+{>Uz~h=@%GiTqxbjjy4L?P z>qK)ks^NlbAcbHXlyuivtfeC%C1 z{hZvQ&A`0H(R^|Xb_*C6aKeZ32rngr(}VABZ;VInXv#RRhn%d}PyX@fUJmqk-+d#< zppk*rxE}t0NF=YekXQT)^1nOy2YMv@hh6_bo~QRe`}RI)6L&t%oh_CBJDWHQHk(_x zCi<^+|Fa@}|EquYLvb{q3inCRdAJNW8KHiD^Fc&9?l0P(TbJF{4t+l$v>8%OvNPf* z*Ef=Jq97g8at|m%01Ad+Nc<^10gTTO-)td08c+qHBEU$NL9ax{<2{Be6m{WGlgahr!-rqLetpo! zVWf5Spw)gb{rvD>uP#4t?LM5g#}5VU_`#>iRbQwlbLA-K30GuL7VHwNu`QuziQ(dQ zVlg-5M$-7t#m0vpw>F!P?#buIelV-y!97mROYCcX#?)F{1SomkVo(9}{{I9N>{Mu% zI^DQw5>Bfb`K*S|ICAv-3*#oNDNt_IiVr8x8;@MY!@fz)?NRdl zXVbb!Vr!^9{Tq@p1^4p!ZR63S-GfH61T#A?;zk2FW-4%V#QJffjrfVcog!k3dsrf0 zr~^X2oVSau2U~L6(EZvS-Q#b2t*Wu%oaD!A z7PT|c8uG0^)O8UIJwG0LJJuoYE>%T}o^NmY=W1#>+}p*KEN)$#y(oCIx1E2ymwn7@ zw>+Fjo7oQ@`M{rtL9dT+;hcwakcV?{kOPlHVFetRi?bgzJ$T;QY&Er&{27snPXcu0 zPfuR_2{*{_^BovD9f{>FZV>$-`DAA|YVgS8$hQYEv;#lIc)PoKP=dDG^i#(MyAf`? zyHQ`eyPkk-4F7=`x4rF%GJD$*ZhHq2@cp>!{bqTj`&)7Qc;Jt=Bis&}5pD-txaN=O zcCZtT^kBy`C&qHH6A|iQHyX$R@6TgsyU{cq>_#I!*o%Sh#lZI?hGXyhQF}OeM1!I8 zNI2*CyG$!wYDC1s-=$A>A`F|j{wNKpxwREz0kt{mb$c_SI1DIdZlYBs{-ha$+%64l zd%HYM&Fy$z@pnv%?VWg_+q<}Xi{=KAfu$yUdY2a7aNT-08ZvyM@v_tSy|Ek~7OE3& zKiF)H+D+cy-opJ=Lu$N1b8S4sZgfa>aJ$jmYJf+ZyNBC5jm_Q7P20Hf9+#3#yF9n; zD+JUwPOQo?932)F>ZbsH1hZCxGW@IL6u^VcX;>j%($V9zKJQnp4hVY+clNSiumY7_0M~$OF8yB;@uzYmhn@F4Y-Rt3K(s(_->~$Ky zn_i9^Cqt6`vO#mpKU@x`4~C;lY5J}|9ku$6=ZL_8O<`~?e~y3JdWJVuM#NArG=nz7ud{fOM^jM$SNIG&FSF7J^jd?``)h*i}JmyiaTIWm5TTvXzHNipaAB_B}s!We-Q zeF2{~dZSghtLn7MNfTtE@!rMaf9bUXcS>}YeIIv%d6er=9#fo0lh~FSkc6!XDRj9S zQT7l54f&(l>uy4D3=_r0^1E1vskM3+ZsD)Sp^zZ-nw-TgE+~ae_wy%?zU>Q&| zz?cE{U~o`>)B@LF#%bdl1}ne;@@VED0p)5?)!0XR^tSf|x642RT;xAkpGZUfh4;54x744{Wt@VRY|<;>HqIbTQ770Jn;~7NC_)e0(7g6B zCgSRG*o2?2b-I))GZduIuss>#r#TQfPdE^`(?hy%k;V~_^79;+?cJ;w{#R5}?H1x# z5^tQzix{YNXhO1;Z5$!!c5%p)wH@nZI5Z650-FLYHutUqHqOr0#>iLy@I5pC}tLmt7mSO-UMKtZfHmK<4V8>p@;F{rZ zYwIBV3yI1y<1^|O3D}}YgF+0kioBSyyRlb@t6Js}!VN>N({Na(C{LcK?p+n|td1H2 z=c%>TkAr;kUFBO=bll8pbRj9PK}aY^hN5ut5)^#TWqMXLujn4u6zly4GeA~}CJm_K zi!$eYzkK%L)9D~kf@?c z3zfJprwj#2g%Z)sy)SnyStZ240*Aq>j@-6p>(#}_clMNRP~Fw`BY!;LNIep}`CugW z0oJxnaf+F>3(Ra-jnpnw607BD>`LRgQ@mLHoLtCku5_kA z<6%Bs4V8sHi%pmp zR;hKvji)mtiz7EKFL$!GQ!=6M!wwTa?uysd9Y3n< z#f}NJ@UT_f*b4!-^V>{3IME@sP2Bx5-$i)&NR0T3Jbb>bC+5x#Bmk}q`oor_&JgMR z1zz#Yx8^aL)2s@C?Yv>xj*UL}kn?bEhfXG`z^p{}{myS$*)^;JnH|Uilp6);9pL+g z5SZJ(3XPrW(+f#$=_=k@oPzRJUDc+tJKPm!MooTJhGON}_!wRBI_?B2vkB%Awkj>N zNAMzW2e#&RRrEVH7o2u|c!8g1Vo-ip*?qNzUAPwu`x1%EN8(Z!caeKv*$wKfSCG>A z>d{JojxK|R!hvL7$DP<1sKYIULRWNQXUmega=N1TrA|y()gi3;RuXgcrogaF)uEBe z@VA}>7gpIukj88Vd0f&M`P5wLGy7EkM#3vR0ZA}x;Hsc+f6mG!K6x0_bThi3FsSYm-IVM!mbJJE#(s`yG7UyO*uLQ*auM;!eA) zVOO=O=nRD_Dptu1OB#X?GCeQ!L4<~jD-6~VAMr#1S6%Ls0S~5c@~|rNZX7bO0j|c9 z?NllcmuZ)KA9rHI9x+L3);*ST)b`q(wH**3#}VK@lOguw;>@q3McP($=qrlM0kTAY zY+BJ>e$~O@1)_k#pU@qzS;|m`Tb$u`85cGuSn+4_mjAgc_iYdwMdLG+5A!E)SolX^ zUatb`>_rwZ{#4LZUd=U}g7=SX7kGe9Du!2W$qj_cOi^N9R)Bw`G8Kb^K&HPmkncPB zDxRa7qZo0H-4RT7@R0=#;gn;DDC#_%sm%qIL^_gTZ}}Et7nNqBL(!gdMKAFdu5?ZL z8mE32XFQDFm5t)o2ObxMO7w)7`Mtp!nw*O&6$}J`p}e2fN;tYSxcvc?+_(AR2t?Mk zhE}ohn|p{aGPMF)GCG&!lbIQ*(a?$M{acA5tQ9wgPQ?;w3s2@h_&RlBBx;&X+R^P*6Tt!@?d2_?cf z^&Dub6o}s;)`3fc2|>aXojBx40-v+Sw@BTb)fT+d_y$fX$w(KCkDJTN>l#kR~`I6a@VMsGZtWY7zzKr_z2?`Fk^0pFgoZb=4I3IYoH$Os5mUYf@PGf1? zs;+mSt7LS%Gx)W6i)0GUX|n8^4sNsBR&~ASbIUlqKXt!Ba$h3;6I~Xkr-3i!j3#jh zF2}=Rb5BKyE)2Cnd+O!hRY2U?R^!@l@tJcKP@sS3p;o=GfV>ww&^NbXN48?{S&)8} z8zV25w9GJ$+*jSJbDaBp@&H8SLRENX1B#;(HFdzM9Dz5yP&HcK)YC7#|1tmetcBfMvJj9FNNl%PS|qsR17w7C3R) zyO^OF`q3G<6lyl=?o5$rg4&h{AU+szXGKml#@X%NF+_XAe09WE8p>ev@`o^*NPaO0{PM7DzA9Nc%iIv?xJD z+cM0`kwpG}7>PMB%0sK!#nU${)#GBY|0Xw?|@ zOKQ@ls!2~+k2ScY;r>Q8rvs|x_|n1hf<}+ zlI0>$pZC3j6AD0oT_=6#Yk7m=iwEjNoZ z;H)r>kMz{j7yw^a98pB(dPTtNfL2LkJ>Lk8t%$e6bBTK3t9@OGl`daMv4W+xYN!mp z7Mw~2u{oOq;=MbhaJf9aMR0b7`-Bb3P#hODlndPbH(Sn<1-hRv zuN%p*jF*i`NgCZC)CI4SH&l)bb;=@pSq*80?<36Us%#wlH!CkZo!|bXch#k9MN~l1 zuO{)dv?&%UnpSjO9d6{h7RN_;I!mq-+?*|d!kka4P{~sPX%#9^DY?naYnbnLXD{n= z$H~#))KX@L+`AHR#;eQR0=nIUsiBE`{+WsEzH79emio-|4%;O1hO1vGvy6U>WotgC z>=q834IskHrkX$8_qrnh^S%Z}l9714H2{;1kz-QItHWNTUOZH17_vC(#V+J4exAn) z&JvmHV)C}_M$n46K7LaHH_uolxIyedMd};rzSJz=<3aY~nt--gFjY%9Y>6@Ljoq!ys+gLoGsZxUa`~d4|IP(o%T%(Zdp8cxxJ|=Og?b z7oj#88O?B?aXvD>ov5V~F{tlpg-@&SsY+MkZd_D?uSc zTp%rp*w}mn*%SD!&L|;!v_xn^HlUO{BWx}K3?N-{eZdTg2y4C9bdQ75lUE`Z)erkLLXNU#3@qCy9R&eUdNk zN{S)j9AmLEN`L;XfJHnZZ$W*b!2ibMC?Y{|cKzCt>Zsy=DHWpNor}!&4eacA9rDdm zA4$JqJt}1E$u3qaUZkWGh)N4HDz%M}gJp0H^yD!0u+#nWa4_xnV==eFrzu*{ZnAit zAXn=1x9?v+IXQ&Vv6ydc_)RKSQlHus8~9LG=s`T;xLgu?^fIS@MA zKJw*!3Bt0JjrC+%>lU2ZsCCC(&1#qF@gQH`*Fxz`udzR|49-P|5rt55HgB^`#n=}0`+`zXlMr=J4~_f+_=S2qs(@kSKi-ne{7F^vlZBKQ%^XcEBO z-d8`3@y%e;`erkPfHnPCJkVKf0;oGpg^J@jL;WE8OgdkBlab!cG@G9L7i%5%gp|}o z6w|P?v*~_iS}nVwc6uh?a{&jpO+S#*;}9aGru|mR33CCU2Tex&xr=j-JMLDu2q5nI zSjDr$y95TY3xd%99$9u+EPKd=Q8|J`R2))NEc8*(=f2;1@F~1RL3I>*qmvEHE&(C( zZv#k=n#$ciNtef`bpffsTEC6n06CFmdND3OKz*o}J# z+TGL31`-!c^2jGo33-`$>!7A$n|FlvIL~VrVAf=jc*{Iaw=L`0<>%4oo^M?MUa zuHcv1W;vcfC{{Lz03ub9#Rn?Ml()4*lygA^FyX!!Vs#6GbODI%L+>4nvrhXftio1W zvV;d%%v5yLOX28lWAQK8r!AmaWvg)AvZN-3IXxA`UK5zyP-IiyMVGwL}FYQclrT7%YGMNf?8l%ZOcs9dG{l7(n0U&<3I2clD zUD(wg$}YHCr-ys_)Y8<&4+|#3L!UIK7;7*B$nmE*gyNZ)Zafald=ujHD4)QO;68#& z4~sWLD2;7|tg~lF|A_L7v<(qZ zdb-3Cvs)2#P}J9zzdhW_UyqpguskDC5wrv-9$lCOhJ&(IVP3ncZc%YB#}sh)J{|G& ziRzA&grff6!9r97kfE0h!B~G>iW32`t)&de#6w$G-*Iym2z<||79gQzUYVniWASsT#%uh zH)3^Rk;1juUw}%d$6d8NG4tD3b$zg-HdE}=W>JLfF^jrxc`W^5B{DwTO<}GwGb?>u ziBxzbwG^69?}Rq*z#})W(}E zW{Z7R!pYXOhr!bA06KoZn1e@EpR3uISOi+5{j=gTf9B#vGfaMT%!2g}BE|Qfc~u2Y zWyZg-j;H|?AQL~W0;2X4u`oEJySYn&F5nTXdS3-NYkGBCs7wTy4+;mif2jTApfjS=tzM@-hp3>mW;L;zolKh9?PHuUm+Rn&C+{uWh#PZJzzQerXCt{>jEp8reN-Che%>2YK)P!)IgkZ^fa^Ur zXLpdJBCi-P4g{pSBiSlqK*SXmwsH5t4Jys$@8kU}7DsQNGp_?mF{4h>XKrn@h-s2M zUbOk8y7+fQj*b<^<;UT(jpFTY4a|jg_NPBB(=~eh)1PuZW(94?breW>J3DW8-O7Mz z6sCP~ck%>T84T&e%pGO=TrgWVOzKn5cW^YXrTwr~!f|r>iLzNldggD?zI~xlSZA$~> zbXjU2%YWdQINm{acJg+D6oWJP341gy#*IHcI+TGZr1N!hA*vq=REo6-8^wK zcF9J#OXbao+*1^9KD>HWJbnB6-SNAlr+z{gX)C>s;NxUZAr(%Ql8DP!Z|2Dy^31p; zV(6WK`DZrez^T?-{t7y7HuDbbZGm^OxL2Hhz`hnq9VzD+P~4|EEnlO@XAmdXX15|? z9pq+p!2w_W#~r8q{Lx;Ldmn?I=Se+8+C5uMkr(Z92&!^0t85!}SzY)dZMLIjYk-Aimq`rV@Jpc?=e9&+d$L zhY8Fda1i-rb3RJ?%!iY!>-z*o*S z)@AqbbOKx6AAf%H0fr7(ISh_}D*otxfk(aEZqI9HLQWeZ+Uz$@-2G?tRT{HeMN0!4 zABL97?8_JuqP;Brk0sp71{6kM(l;d-dYnIfbg}`9IWMlc5E=Lzg&VC6D8>+;ftgD;bOPQWc1YfRO+-TC<=@6|^93(WApn2| z4Nh-KaRh`GpWZ@9Gi_|F1i)qERXw!^#7q7ZD(IMF$ZYBNT?^fR^yj zx_pHAv#$m4wh?Y_%4ZFL5Enu_3$uj39+jy^Q^7u?I~^{+G#4;+Y9t-ywu8qpV(udl z*M3IC9NT6-l-_&1!rDO&tPD$`aw|Qw7+wVh6kam!T1anNym(xst#mj&mom<{HOpGs zsdA$7ITV-)YSPmo2r?87F=Hw;Jbv*U8t(2hKM+PE8SFlOF1)sibg2cK$35rk5X}Zf zoqCC$wRx%MY*4543}q4eF+wf}h$KWRXA@D#LFZg}=eCafg)tz*;&#MdN2HSC368tM zT-PXery(U(A4I)BNdFr5BlX(O1<`zG$!tL3(bk2)}M zos;Ano`kZz4XK;KYBp-dGM|Q6?96ab#gzr7nUM?(dZVf!QTJh1e9E#J&7z)mkt!|2 zTLdBF#-aa`)^>Ln{M#@hV|J^spWUtM*s!wf_hcme^lc0mi8?d*-{z;539S6b<{=KT zQHjra?ZUqHP?jOr7q&LJq@;Pr;~qaH9JnA(Xe-*)s~9!QyW1uIdFE9J15!UTY7Uwa zaF^hYV9rwLa~lSIZSSc*j?1>p%?q|?TI7N^(bri_LrC|rH^4nGqFxzh*d~O&|HzSb z|Ixnwnm2%Q(D6lEfU*-DGaCgx@9u27?jGgu{s^gb6;jb(b*rGm10VP7qK3}GTWR+Y zl=FAblTquMEO($R=afIHIIT3azT&muVPI|N7xHL2_-NDUe`K#5Jd{8asKcd)XCJA8 z{qaucPxRRGtiHmhAwK!L4;+9qaP6pB-~ygw3?w*y`SZtT&tKh_-5UXJkaoE7pl1lR z^sAe3w}0VLtru!IihRu@rJWwg!jAhlWb91M74o~gkcz7{EVv=t0oGOc03hx&$2kq$o zbfu4p$v5M;3{3J-WcIz+Y+W4ao&FS2J<@m-O zbv#GT|At5enc=r~^gwYY`StFafFB0^ncTsIN&0!j z?kk|U1Iu@-088*xYdm&ilL-(>0ci;kqwJM=R=j!g`sk zkKVseiYw~D#rR$d3t>aI@Qp$|JG^N-YEw|d; zu!2&5HG@s?S1!P8Gg9UXelj3r-xAXwXv0czi?l8GQ z92M_z4q&B2e@MepZoypG9u1{j7j6vvl2{W=f}gJ1017uH>o zO9a_$VZlL09*<-luo6uDoUzE6q8?}UJ-u~$`n2(l{~4X$qAOVg+Cm3;hI$im&$t^bS@Q|* z%>6gGHLv)n+_O)TBVd@u=GyM27enZDUn!Z*gpLC`EYvvZOYOc`vPIFjD#+nit!v4} z&;RhU`pi7L%c-DzwN1EZ@z2f_DK*8Pf})`pNY`0Fp$ix|R0b9WoZzoMAc}DKi@n~V z_!lZNO}fLL7h~Woob$R^tK&d=g%I@jAUcu}vx6#l^;hQ}jNFZJ){+IkL>0dQD0D712-*sydAuYHnv0h7vtn__?k;;Bx z8T}k}r&ivZOj{vBQA6`b z+C1q`WjIEJDrb;4*t->!)qE(z>@aTynsQLr{T;PTDkawyhA zw|q_~Pg@{Cas1-w)vE^l$6r5r^UNyPHYFue!9e8+DN_Tm1XtY^=rPCtGc@6W1&RV| z&j;k0)h2-)$m_;MAwd)r#CA@oOL3Omd{~9_`O8;FJiY~;f{3epp5UW$834fo=uN!VMf>4tGURR_0MdX%KVFO7j*NlN~feBmw;{=ybs(*1P=+D`> zWW;E+Fl&LAU>rz&#nbilrg&=QHa@}eGS3AQS0Q%Zw3 zWB^#CRDs?!ko?7?EED9>Tk-QUK0YDC`zdu$bE9vq&SI~Cih=)!7K9X8#-ewFbS^NQ zexf2Yvc-5jV(Y?5FjNgC!p&-7zWA0gRScMkkJNMfDC}etMEQ%2%p+L?s02^dT%5zY zU2h>a;7K~S1Zv4bjmv%c!~##HIJ%73c}DnPAI#6Qm+!6BNq6wuFW$aB;+z68Pm#3& zB{(Xl!}`}k*|Z!kPoKSea`M6&HH|G}jCf@jVkPwvPDCEVHNhnKsiwgR@p7bF{1`s4LY5Hc=*5p>h48fyW53~eZmFF~&jJtF-Ws-2DEpNep05MI)#^F8M zRg8;jjHsRMVoc4x73gfW084OHsZLrXYj_YRImuFZ z+`{P+Vw6SzB6t1iW{k=Z{Xh_yv`*7ezyLLYOYqel1{yQ-N%3$_>d~w1(=UGeqAIx;UX+V(y+uop9V2 zm(q)X zuWFa{pn457@iCKLh|yBKJD$A%`M7{H^H3s8jQn?s^4JJ!D)*AB(Vhi7@6`k@!B;gK zhl$Ivebyh}HQQ@=;$Vhlv-E9Pv1!I8Fq?aH%h0gF^_ksg0f@e-LQSw%e#RDo=w8Rh zeWZFZgyd579ynlMaT-DI)OJN5Hai{OP|xs)6CiFXJw)78t_U*0TD2Ws6^iO@Y(l_p z3XKw`WFDX3-z=BwAhbC+dG8!Vmf}E#njM0XN4hR}WsJR*Ug-II3Df@KcC?VH*oV0R z;E~98jKfxg;8VK_0ufddxCCF7`X`)!;OjiFhMg&QUpOK#@Ea*d&goL*N|E5UHb8Eb zZxc*(T|Miz`&9IuS|V1zhhPA5B$pCAvL>M3`4rBqhST5%L;F5jhI-A~fD#;a71_lB zWCqy7$JdPJ#2?lwNjCJ@Th#}c3Z0ynn`g#afF-!<+WFeU!U&P{)HBzuETtpYp6Wmr z%pJfvs=gaN_|v;=z=2Ei z5}zdf>h2047t$|GBCIrM>a<@mJ%wDR#^p<9F;ull;iPSA5wy)N)nNiT&%%_h0l^Nb!~ny8BBg;Fqs-X&Kh?M z9?rPW8V6X}^#gA9Y68jc2Wh~8SAOKW3_#*hgO8R2TgKamHBzky{D3j;%N9Gfd#nT& z;y@6r$uoJTNoxX9tpJS6fkBlVlRZrUV1lpm(cAO!5bK8)yJLi1ouNP@^~TVTveX1U z*hc6h1A9wt3r``c5gXLPJtNI$x|VsG1C^+3nuD3>q&W18uRSn99hN7r{N$|*r#yO; z0I;%`K38N`3lqDXZ`h*`7RFt9_kdqkIQ{vQr!or0z?xao+9sgOfn^Wdcig zRW?6Aoyf2l%i^(4-y~2}Qn79ObmHjm<6|rr#ZYIrOnT8Bi@hA3;!I4!d%DNKvkelM zs>Ko}4m~iJToo5l6{7S_0!4R3wjG>KSm1<ja*zQo{RkI)SMKP5)&dTKP{6SR=u(7|N@LEGPrM04g_jFv!Pir8Jtzrwx&j?}$R@l! zGv%>vctqm~45m4{ju0)73|>-3?Vv^{SIr*5wE-nKDo+~Q={c(P!Zrj7a$Y-+3*2s* zkW)3X(I-t_0@vrT$acTAm|H#Yd#C|af~QIjJIh>&XUvqv44*az?6%wv1g9f5GAwBc z=P4P0!HIx?c;r|LRDz?*3W)zPtmBwG=080%^x~`v!l2t*1P|ZfTzG}6ZDXn=FLZ9e z0=>3JGKK>@V@N!}%!QR;sr!0=C|MST#b_0oEjIwfKOQw50C}r&YjVKiDFTLS(jQxv50HU%L zG%n0S#+^hEImrbsCU1AI_W!W=uFG*GN4ntrTeI^D=TCO4DUxayi8}~Vtr<26c4LRP zLx5^&g&v|%D1bFAR6%v&MJ5|N53+i>^CbIy9uXc9>6vv+t*xyc%%}-eWqN$!;o;%o z;qH-!imgw{pj0bImaTB+AUhfeU7wM%+}$$k35OLrzVSE;oj55)3FYU56y7E17=*f} z#7yApZW|5~2%a2?6abAo#2os9>O3WJi`v_LVPj94-Mr>Q<(;Va#FM!@p3=n*{Y=ZaHmdZl;nB^ z&N_`x^Tg*n3BNHGh=HJ*_2$W)acbi>M9$#Vb?YZy{|Uzi#6?^+h=O!LrQR>nU!fW( z^}GkKxIqPE?(4CG&;p%lgn1*x3|3tkUcWgxK6!ie>L>6@B1^phJK2Dam90F`O5R6j zcs0PyvM?5K@&jU^10<)6HQn#piVde}C_rL+P^CQ8>Il7Xo7Zb~+ z5n^SmG3Uaif1#Q@FIE8WVoa=@BSM)#D)122FsYi6?l2^CY^hfb4%N1YED|#5@eok- zm&>ogYH;O+R8~_QXtO>6bd?n92+Wl77;$);pk$yx>pWjHsZ2ynvL=c)sb=&zyNF0)sPYKARfoJ)KqDNn8B)=GGuhPYbzW==1MZI zSx%+s^$rUxDo;>z;-kRqWIC@;$)HplKTH*wCDf1bVh0GN@r`bGFda))GOgF6V$i8p z40PS~0nmS=(U9I(o)^FpfsB407N~IS{oEYqOI&|}z{TLIjY8Q3trF7Rczz5lafN_1 z`qY4^i?CW^mxRlW5I*Y)iMmcBF;9^}`2B~Uy9D8Hy8AeUzQ_l)?h;_S*S??v&fsZV0f|fz5 z+C5wtolG2;#o*HvN_}V-w;%C96>#Zd;8{^bx-=~qtB+`=mgpI@s^gKVF!p>3rlwaz zC5}1~2;ec)vQtO|b$v<(rD}RVQ=FvI2(A)ESRNHJa{FH$cOz5RAO`mSYhbTA!QI6L zo!*-mMv@`Lk->fz!NV^K9=-6!8kYmIGbFMU03GqJOU#3=z^i&6?aP#sV{*24FUSPG zkv_OXVY(sP2wTS8CY{173V@GT*Cu3SK<)RSieh8&lk!{f>>p|?uJ`F0fB5#Tq`&Z6 z7XZ8w^^4yU$_^p6*90wtRCTfRhPEFxzFQK4CPtkbl)0lhSh1wx@rZC88U~r_-fStO zociSq@{F%6BR6UB`{3%tELf9_!KXUxCvV^*oSx+{zqs+vrKj>EinYix{?MGhgtgJrkOnJ6(f2?JMow~S;<xP0f<3ntgK690n4NV zaXzd|#~{>IUU=jbdYqJDT#5Uv)ko3vOdfnYrAaPq$D-~pFnk=wc5#2xeg@)ZiCNuo!ruO-J3@0&XquItnlRTr@w6c z8aB!bKHPidt-ECAG(gI5RM&IAQpx3rh=Zce##UWX(SoAXx`_^^Ia>}6Fa)$97a`eg zu20FJ)D>MON5sJ#v+=!98Z>_HIdw+(m#DuAdkzBAO;f*?qlA$Tw8WST)XGR>cE42I zh=@crVjqrhq^aZ=ymHg$6_E|EdvGPXLr(f^a55^-#mUqRHG?*tPqK68ju@kiC=2H9 zxw{{O3?z~W%!@o;ZVxvFdu#W_@QMe(XpUip)F@7=#U9r`VW_Hfz^8xNAw$Kpj0xm? z_Bflp08c5xs5I%j6S^1A@o-_rcrwH(3*SmQ+bmUsUVRnMkKP`i2+9{v@C$ZfL02qxzK^XM&mUz1 zF;0y>GY#M-6Xe_{_sK%o3>J2K?=CcRXU3EYXmDe zH$N(I=+!vRy z7@Q%ITz6W$e(~&wSBJk)b>DPHY$6-#)hQTMI?JDM0y8OGs&V@X?GDyuM*}FMA8rdf zV3d!2VPpidPz=sSMW>S(k!ukH*GaC@j*R*2BW8q~wYj8M&wxr+5XE^rS@II6%RyT*u5Gt?8*6> z#J0v1CFxLI;y;JyVrfNP)dVerRP}Gf=xk&Lt79c}vrmj1rWg%ljpqz1WL@@ugT0yzM*eB}?F03BNZ4Vx=)y@@7DXA>u&DImV}k;| z#+pWlcyese04al0We1lEbg$2))U6z>aDHa>72;n04Qh&s_c~bda5>=dI4DifGDuZ^ z4EvmCn_CAMBvRPS7dgw8Dj$WHgkG&p$Y4~N@tfP^0ui?`m8!Q(i zrr}M=xHm$~U{zakK6%PQ1y+h~RSG`LtHx*=*lLJ+7e)&^RCmCR(GD^yt4lt-;Jn)e zDdH%v4UjT8)rjp3M_68NhJy>}Uag+t6xKDvybzG=&j|gwk@FvGUvkad5IKWax4138 z4u%=-k7KY}a48qgB0~KG?dnoA_z6`8YMRJ!MD9Wy8lzc)y%*2s{ZxyAi`bX@$Us1a z^THK?m*SuJkB=O#uN~YJJ%dZvb|~iswBOt{`_Z1N~wl0tGVK z&t!f2=TJAjQ89n!tBQQ+_HQ5<;CLB-2#gKj-4wuLg0m*N*rLQVLCYXj0Z)z{ct*oJ zsZf!UX|lx5%d!|g8c;$~CP?tahQcFF`~~Y%Dx-`ioH3aphCNdche*|2m&nu$vAmIy zYY{QnRC1xul9YEp`1|IGJ8s3b1X>4lk z17(_9x}y)W$+1YCk#1X>xHbF$i^Z*bcPa+3#+<@KG`I5o00s zrUB|n2v5NB{R&w|t^}iV!)AqGJRz9azvFgNVo{eSW^n50kb~mHMp7Y6PJosP8oX*J2M<8NjDbyCv_$m`D+;&Gp8PR~WEGqb&*bwW|F+5ajL3PksYfv6q&a51_1gG>lNMB|2BNvqp znKMx4uwOE!i_kJC)l$&g0RtR4dF4hkjvlTQvSXj{a2*x6}Ck}>#HucPnePE3O0%+NG3ewAdzx%?gMfZW)Fxv3q~04amBQmcz<5mx#u0!7Vx ztsWgVs@lA-K2Dib9#$r1u&PE6Q$?;K6&(XLBYSQzP`uO^N&P{Xf7k-YTD?5n#p)W- zHblf+7-lcZ*d2UR z%?+@pM$!n*GF|kdpU9CRP0=%mRqKgxxy>8A!&3E=wmp8mWTM5L?YmTY;uetUBiR>l zBVXS@-HeBw9xLZZzzvZrIxaBD=Bt$bJUl@Ceel zpj0sE2RhZ~k#T1d`PvjcgIITMJZ`!SiNX>uikXLr1j)rYiJYj#y>j$&Nl)DQ*-2`< zH$=|h)wLa`@-&2W?PUFM=M_kjhjD}{0VRAAsvU;&g~+#50!thzjSw?fb)5$?MCLFA z4(0J&;d*X%+_nm_XTF3 z;7gZ+G!!`zPN(|g2sTR8U{A-<8x^e&!PNjsi+c(YGkik(#Ptlm|8Q}-^ufp5=i}HM zQG;E_@wz=ivZaQ893TDk^Sd{kImF5{{jfXZOzEXbBMg2M?{5;0*9gASnUAZbj6ZckHK%%EY8Wss_DUDnJh|Cb5|0sSLkg{1K1kPU6aN zW%Uhf0cj*tty!vN^!qC1$H8Y4tpH|Yi&O6n^wAxdxZpo*TP_B;!~yjTz*a82qLCxN z*QaDqsyzD^g9N96DFed6QOQew2}2w80B9UM!FrH5beW%!Ky@8hogCdN%u=x4rhS!a zXX+(vliD$^!h)V?`YTTej~sR>F}@esMtT`)0bMmk!)29Z91Z#r4w1Xu;JD*q0nc*- zU-y7`gwg-bvh-xV3xkeKZibpct2TEyPa#I8Lc_5&9uCHj80ZK^fO2J`ppTxxu9e(< z@%+S4&;+S3O|v?sGRj!vBrKVLA%R}l#9kIGQYL0LFn4%lOeyL25K7Nuwm1`MM?{zn zkTN*c&L$)VVs`*(g6M4ijY8PB{eA!(ge8bGqjrEtrhequx3Q+6bPu!A6aCc`J%d>1 z*CCAvI!`Ekob5Q@xyB(x2WbdY5W$fPIrJ69MP3i-K#=p}$k_%+8Js$+08c84!w|ge zed%7bKKCwg62)E270aoL6^P?*2twy0!(a;7NTW*#FfH)m^eTxzYl4r*PDj1^d@d1xjN;lgXfFD9q` zVz2_8WP-cfT=@)AkK6qgq@mNjz@4VdpZ6~%qKc)qF`5RpPOuYBaYSnO!9RFQo&MzR zKtr}s)0#SrPPd3S!MQpGgG#r6r<2~r_uoS)U9?)LdFspcvv|>@g*`uGD;NMOe+xeT z9mjda*9{)s?43@&|GtNi*jB4|k>WwjZVCr~R-#$qWrIacqti+2UhzF^%T5Pv92p|? za0(@U)1M{={mh39Z8d04C*RyF{)@DkLc}t&oMY#`32wM$v7W1vhFbJ_)1s=&)5-6C z$M&Ecp{WNbzLUGi>b^G=Rk7iXd&Pr$#VwNcAzR*4a}O~_PM6504;PzaBbkcLvTqs` zsd z3@tDag^Ax&`tzPNtt8szw`?Hr=*g>RDP8-Wp_J%_|41qQ>Gj)`lKsw5N@n%nQ%X4@ z^Od2K%;4Wj2g3Xz^r8j$vGozk9{+@V^K6->n}KpQruCP)X*;_jtX9|NUMj0cJ`H ztl~>UE140$1)cxE|Nf3yfh`#Jy5+^L?g>Lx<@Ok{bMf8@xAe>A#930pPDH?ZOG@gX z!EE7nAgsl)Lru^!NOfMo+*8LS?7w)_cBeD!;s#fq>%#i4Fk#(2P`yMaH9^ZD)tN{0 zQ!RYYxxg(foj^)2m+Y_D3vX!0D_SB)*QaDq>YUaq67t=r7|#)X#Ioq~rbV5tuY+wX z2Bz+LG8;27EOFh+^c*S0VXs6^ML3NRD`Sn}f>_32gM2`Kk((0{t*c>1YlyMP+zO3) zxQLZgB7%=N*Cu2zs&*Mod2y8#tWT`){8RI`u6^FkE0KKMrG_4gHv+|X5CMk?$59^_ zn~&Xo%l)0660b+api{k6b+ns)R(^9^13j@@dX4&X645F198qWL^@fjNaM2!dABH-) zlH)DkNq|tebP_w<=g+*?ISypgbWIO*T+vc%8ho)Qk06XR=+&5%AIE$@)lqYsbCJOfTm=h2+_$wet*!AL6s`6Xm7>y3=hU;q7e{hx zL6F!dw=ob*Fo#v*FBD3~=O(hdX}YEdx|={tQ7Uq=_7PBT-oAeM=7gf{V=t&~7(~#X zaXV7OWDS0`h|rKv&%#Zi-D{k}!M6r!Aj2JRanwj5*Aqp~1?m+V!HM25|J#!%Mv0iq$@4e?8%yI}>8 zAV<+mFr3_o6|Ap?s{OP@S>%y-;Gk|hr7xmsny%?Vx?W&jyWzovA$tToRVpS1qhw#d zJMp%kH#|5SPG0ikun5b4Iw;0W zz?@uK3k?wot>I-0u(@r>M&h49-Sj41Jpc{IMzBL6lPq%PgbCrYvfj!52CH=_6J6fr z;BB4!?OcmBOSs&J81Tsv2-=Est~E_3TGf|^md>!JF6%5_I81_4@=f*_Y|0O-i_z9J zP@X4-nsISB8zN`$>U;u^v+8snoR4V4w-Tm@sX^qj8S%-j35(XDQAW0>IvdrS801vE zM3|ON+)$>AHb+QHWRWy?B9BcreuuXPiJJ+&^(h&Ys;ht+_6&x{V{s7RJ&m=vua&p2CL2v!Fq|R zYW_YwQ3m4Bz3L8l=*)xlJ6HYT`8gKewCvXMZyFRT^Fr%GQM~nKOPp-`A{rb*FXHq8 z@H-c9)F1M0hGKeCX4hJj3`$)m1m#BrX)%06J?*Nf+&21#b(3_joYX>NG;^;bb$_V2XW~AD>MnpU!54qDF z4Y5_=(&aAsi#m7igQg9&=jGJ_B@6o^m7;TO^)8$#7m8Cts?wUt%f4q2s8ueMuuqU+ z$`+?qsbi(@45du}lG-tRuvGqPJH;v@ey5l;mRxnrclopI`vy^_YaPvk!D~*>^8>l< z5_7dx68O0fo3=8o8eTugmaL1`s7GU4Kjw^``><&%(?{X;?sdB}4u4?RCr2UttTmo| zMar^l2z`AG3w4yHVJTbr(Ge(#oBI|}>K-n)6@vo9tNa(Q zGgbi$6MnR&0C?3|Hu{Xp)qaiq`IxzhfQ1A3=M6u7!D-a{i$swv25W% z{#*O7X{&O^FsCgDapd98)%~h{*tAtC#UX!A;QPxwgTnXU)wjzMy)$1l7%JrxK3VvY zyI9WgLj~r%EOO-+7bg+kDdK!&!$MVd`1*M@suf9#{_#J#JEBDo%n(7qQ5gW~mzVmGk6d_p2PYNEdXTe2k#dzSTZ# z+A?b$$y^U{>l(HZ@}q5CSGQIBuxYDuP7a10+Pd&)<44zap6Ta|il0M83cw8)RPHLYu_=HXIX z4`W=P?}hw>pvcZOj3D{Zwvt#^|CRhx`><(CHCFoi&4;gJ3Hs!R+SZ%ue$_r~+EV>e z(qlKh8v*DDHej_h+mO%H0hpLJp-!ln zZ~#f+B0=X}#8>suFrQL(d?t)X!;aK3tKW7nJ$BWVVHd zs%&m-Y~SDF`I(DYNvoD*G}1p@_~XL#4B|>HpElsC!a1AHBdccQ+?Pz-mD(KH(4XLB zXJSX9iIT(Sw4K_AOajSrei3O>u%CGYl|h0n=%DTYz5$eAX0EMC_SMK*cN@yAjotPN)IV5)Qu}*4*imu z$RmNQ@Vdd1=_|zX6(>M}0-0ic2JfKw%o#Gw+&7n*jzkk&4mlBsWmqdyDWi)~v(nv9 zMe&9;P(o-0BQ3>umizR{#xkVkUNtx}O^Zq#9)}+mG!G{t1iOb4D4O7$9y53kv4OP~ zC4(~4wyhtHgTz<aZ}MaZa1uHb_&fryDhQt`0kRn>ct;=a7D-%6k+Bqr=42$nJ z?-k!|-NW5m#dp+e63-ryu1%aKMoF<7?cy1C9vx!Y@CvXx*2K)tC4=`pNrPACO%2MxK%)GGmDvYf z{1>}VA?W)ic{p*<8z5zH>U@z}<(v+#6_(^3^%y@PWm{aj61D{Nqq@>~2vufz^W>F? zwEWFV#L8G>R9|2ocy~NR?alxd>!MzNE8TePlLOy z88LBu*CJxD>0DvEuG^z7yp`lo7$YC=nx)n`NOeaoZs{mhP6{B5Ps(M?TDL>a6ZRg{k*G{3r%^f= zBu3~h>TqsLq3A3@gLg~sS-IbN^l)E|VPBdGc28n+XCE3;D)c81dXc3hh0d#uptFK! z0gA3aW$d*~QCP2TvcMXPoo|So!K}iic>OC;~I+ z1>LqVO@mrD&_ETn0;Nu_v+!$%mU^53Bm#26O^4XKMx2HM(aBX7i%>DhbhFI8)M$k4 z`Cu2Usz??fw7e3DVQ^#`4+P!b2v-#9jzu)scdx$Rh*TfHbEJP_lD`OboqoJr6Ln~C;Y;8D}gex_az)Si0FnA_+NS5LS<&eSU} z_=r2($A}9zkW*Tk98J(Nz#rzo)!4$a|J@s0iz!1W`+Ax*$YK-|OC2>(O9LkVQ747Y zI1PmR1(NyF2sH!#AP27t6ZV+zULL+WITrLGlZQq55H^2~RCHM0_`ODi=`xGZo1j$& zez1`P*A*(TkOCSk+(a^KzAlkJ*ii91o+6dUkC}G@VxK9CFj{aXoy&B_q=*HC3lwI3 z`ubH8Ub;3RgHa{T6)yE+FPmN1#4!U&tTRqY$R7p{xdjkScYh$S%#H(<(V=paUG8$U z3`!NL^DadkH`k%)8}1mE;y|D+y5zCTDHwZZL-IejQy1nc@0O8l>e0kunl$56qA;Qx z#huA$+PzC3$7XTo59g5n=|b${cnJzRsxgVhwRa{J^;{A!gk#ZKT*b6%iTC3QBz@ zH=i(ICPHn3mO-j=#}(9P?7I*amd%74{WGdlIsXPK{^IDRBa_3GnDfCicrwu)YZEGC zjE9@gd6=*0l57j}g`uG~nKH-34IXjEL@+ZT`CA~XoNkv^$VJ$;i>P>?}Z4@?(dlhC6a&`(?2D0qSWi0uzYU{;1 zSeAX+V9_0h@a1DY7G4*}bk{S)4|G0$z0Cro9IrBW79auZ#u1?pD3USQa_xFkk4?nc zZPOS}T!ysNn+8R$Z&5<5PGtiH9RqTQ2*LT_^<~^=QCF6t}$v#@KS@8V6gec*NC=%2i!AP=; z;tKB@M7c(uR`P=uqF4sNMXkpG$O@&m?8^pAu6;kx#lrZX84|n-0fQ;m#b4%Pa$CO{ zs8%CU#ubl;Wp2Elj|-9A{uZlZ_?e3@ zt-P9zoa;??xwXFw4y(>*d?nc!RJRrQo1<)cktkrU1Dm+j4jKc$ZRN(yCiM-9sY%2$ zyqTQpTg4qDP@%?`^MJ=KSRoYFqh*k0N?8@6`^8oHa5t0{7bv4qt_rcp^QOf_?Rnl{ z*{S2ru#dv*@L~ntB*UoeSnhR$Cs8vVPuH2XRb$mgDlp22GU`lDKRI4in3g9|#lq+$+VqG7jAZRZKom)D?5H{ z-p>~86gc2p>~;3bQZE_|+0y7pZ5BWHu59IfsrcH^OXRIIe`24w?7J~>o*OB9pUK(M zuaZ+J#xv{hMvx(B&Q-Q16p2MZF~UO;k&xQj4U;walT|5>_#XnaYDrGMHuQ9M zF9X~qQ8*rLHO7wlR1JDvhhAg0vAnFmc_;Dg*>4P$Y&N%s#p^dGN3UNwsR#lgvsrxU z{@m0*M0HzT0%r|6WrXplouIxEceM&_KuGT{O%d^@muBLEub6f-Z9peEESI)4zookS z95uZegfrSKa6g6owk4-o6L>{SI94QKaAjJ-6CIXt`B*=P?Dbm@3=FErwJZsPE1R7N z5!i$*ffrXWLy9Ny@~{c6>t(PNz62g5dh-mT)%`2(nHY4F;7N}0>QoFmo$D$)@s}2_ zf^RVrv32E&s<*DnqZgl+-|Aj5?dmK|Sm2IR;*9lY$}%`~rQ6 zPBYXDTD27rtu$`YY-J&R|7&YF@;I=i;w^R~{{&8m(hu~xsF9V%dgKgV)m~y@gKw!Z zn|@Y)^P$Sa2@?qM|F~cAE9%gGy_WK4RC%Z0QdUpD4X42Fwpo6|U0Lj0J%#`EKmTu% z_+S6?A9XYgF0~j#kWF#TN@xgvz^NuHq9bYW>{mo5;{;5yN9Bl|E+1~U&i-;c(K<6o zz&H6T+>$k9@aTu%joK#4mhxH3#){1qjGuB9p|)G{Q* zN2?*ajCV;h03~v;30elJT06RYC9Fw5GjFO?ouGF<7bo0=2)1J^xFb&kMwl&wqe-Qz zr}VLpP0%VKMT)&%8{y8??~LyjhzfZ11k6}W26P!VF z&5BT)pk<-zdWth$&4NWP;}92p(M9Ql53w{Hi3;STBtr*NW-YiqB;&jy&b0|ykSg8@ z7YW2yfuZLs4l?E3e-JXZB-8*|H6Od_DQF|aELfFrFsz-9I}soL>FA`mv*9ilE(vi6 zT46c^?0H1pXVbAEau%?f2+Bh@+6KHNdff|>t8kr_%mn*V5Q0Q{tU=2{)%C%%E)z?} zf>RFMjF;?66#zu64Lhva>S~TeX{{o}02qdXFHFn=)dfRhAX7 zBD_5;3T|T_qOKT^(o2dgHA2jSRclBRYJ`mtRUh#ue3Xz+H}ON<`+U|4HRa_x6fI;m ziLgl&t~l)owRDZ*TM&yw#-65pNBiFXhD{;*Rl@ceqyKyN_x%rlh;q?1UE2j+&oIal zQow&EeCGw(p7%5~T*g6y9^&F6)OyK1la=%^4xSKK^mo8umX9-D#)AcD?4(LSj^R--_ zxAd_g5F?eKs5o#aJmLKfm{AOFy;qz~zTR|i`>c8Nh=(Oth&z%Be=cDe&$>-z9P)a4 zlvPlqpt?-_xil?o9r-id^4T84G(YoY1o>-74dCzoMs@iZj(7B9RGi^2j1f}=WEV1s zumMge0^L345qhfO&pb z0T;PW9D`)tTbY0br4#>z3xz8iAeVt)^7GD1r@2CdhzB2j%&PA%`I-fw3PLEoabgEQ z2Sut~ykSnpxZ57VG^F!G3`fqhdkDV9wgEiDf(>PYQFF>M4kYZs#%NmHswq@q176^h z3ss(_%tW)hIV1Bs!fuM5g{-;)hFwr*iB#pEn%8%9)A>&B6r>~S6K*_ZuAZypFBdmX zAV-j$;na=bC#0cEBo2&7^<2fyHbBY(Rgpq8`-rw%>TH1aMnZ!))x6GvDudl81y_7e z{02BNA=am4VX6d0<19=ovz@`I60MC_B{(hO-=gZTgRspC>l{hXJh0D+}44_ zMh3S?#$hWz4*kd%xLSp=53krpb*&L9KPQbcq+(8^$>V60FD%q(EJ+}ZwsCPb7O+r= zM|uYxBI$c9(3jq9yYLI9r!jIvXmm~|oE+EfFTLyOH7xGGiFt#4lnd>{M3U2hWG!0u zJqtlCQ6Y6v4FP3!M?)yw@of}TY)`No=w9Vlim&#zg`>-j5WK90LqkQGkxkx`1g`MD zg`{dtAoVLCDSI$>U$F!tMFMjZ#|GVN6mKeFT7`fGr7BE7UFV=M#h`atSP$-Bictx| z{KsvBs*I$;LEfPA6wuz|`G{M(;w8yRQrb!{TQIs%3B4N!hLPH^*;pO7s?)VkS@OBo z8|Qt6re_L_RNE}z_ z{p4h+Bu@*!Wt&%-0BNQhb)NBm^_;f+*Qt4At9sKG{7E? zNNZ`urCEF*e#LY&@tsoTGMdn}uvI0&u4Zdt@#Mnq7JJD!*3a2e_?&RzGM5h2`W2d{ zYrCLIPU3k!_r{1+NW0>$1N7TkD;N|gal>Ytu_kC)sHy@Xg5aDn^#FUo{TjDEF0~&< z>mOa!5!x|OD4QEwJFWAtlVo{lgqQ`Z3bi+Y2_v_sV1M?7mp{m^t%YC^bt*!+|^bSgFWYZ(8rs!G7 zDmQ1XW8BydY}x(RLBnLzGIS$MMEYY`(&RWPDh0jPI;KKfhh!jPVmCH7_Enbryu5DX zoLW?g^L}H4>B^EmF5o9bm0YMAx+sPn>^p)ek>%3~iXtaN+!Q^->sZVLBOcBRBfF`f zjT`{EM@U9u-ohz393|ldF=Wxh3C3J-xp+7c-SaNO9`s(# z3j{$x-H2BxPSthkSctl@Ds9tCqYQV03V`=isc`W2)DYesp*BU&LRJf@-}@NO`}BsM zuP77+Ja;zJ+>W^qnnvp^^;szacx%tM}VJ^9R zJE?02vjmO_8S%)bhRE3tY^q}zrNhtx`BjQ$xW(runZ+ypN+ zS>let;R#=0e1*~EoB0!)4u6=3DGobk8 z_1kC1tQq!L>>ds&OSHhLBRi5o!G})2{qEmRzvTlFa|JzgA*1LGA4}6ch@`4Tw< z$D(>GjyYyMV@PkQC35)JX%B`d-EQd(Or?)40TtcT$(=jQF4!#Y-i_m#e`;S>K{}ma z2Zaa?M`Q~`9^>+xlu-5emZT2vDV$4zTPdORQ~SCyo3A@G+odk$pIZ{T4?mrt)Niss z4S(BLbaz7z-XkAT2%I_;zirD{Vn&A z(Jp`;D`%I!h7>-+rYxusGFT;f&1a>U*oZ_{)_9S?F9tmNf#K8jVQ z4o4knLyW#9HaX#W(kBWt-TlqYm5tGrU zR1rkvo6HZtMu%84$Y8{`CK&@TR+#`KACNS>)md*ldlZ9*2LF2l~5BzY&DHr!-m zXTX3f67DL67nv#HbYPqz?8vx{=)DND0a6yIF8I(g9N$nHw|IN_=Ea|ZDy-OvNUyD3znu^Ewhqym^icsA*M{f>a z9KAXeMJB#L?g6IPs0s~na;gJp`f|L6J0p0$_4Lg<_h)2GL*y)AofNcDd=6J=pWY9c zk&ZbGBGk@E@)N9t;Qh#wU)HB&Vd}Ivfv9;;fpfR`HKX()I2*wF2_n8k=eCS&U6~q| zJm*df6fI<(AU-0VlVpPM6!0;OKg1ov(C=M+n7}jRZd4`5vC~7Up8$t&a`H#W%}}#& zb&|NrjI!`SJWq~Z9zK8l_T`h4ILToa@;UEC_IM-6b!Zr9@of0mX$;2shAA7>3~tSZ z6(rXj(TarMXaXk}rS{3m$>G~qP7Wf*Mu=IkI-$<~E_N42PpVmuyDY~IjeyL_Ne`1l?(L8=zMnrMK}l?*qQy1gHu&Ehmxq7j@bH$ztv zm@L;p%g{GR)PRpCdI0bCU$TI?tXHB(CqhO?Y8EBqA$>%B<7)8D5w+lT(v`qV;IemE z`E{Tq?&Wdu;*=+RH%ryR*VQdBIM^c+!k^u74iS;F2Bw))vE*eZR(;<>$_mhLZpQTa zL)n*$Ipb04aMM}PA99=SRtMCjhhY;iIomGE^V)8c&Phw#KBB@{n-%E8th;!@$`XOFhXG-m?|0uR?Omm3S$$C5X=r- z@r*?%jt+B}B?MWvi;gTZ_s7bLgj4HLvGCMZdZPE-dap{rCwuO;NS9>O2}r7x8#oi( z3X7>6rE6_M7NlB8A$p#2{@sSZ<}Wr~^L3fvR?OvpivkHe8E~<7;ZQ)VLs!c%By+e_ zHffc-&^FS-7eWX%8zbIhI72(+~?a6OiCfh;a#GIY-3L zhs-&k5uHu0rsx^SF$I{M%g##+nfC4C?6=5U4w+o8FK%T?q#+T=S~?Jj-%=hHpk-mI zmOp`@!ZZK&@c5Wjw7|LGCx_vb6vY(#Z!~4RI5tagiQsNVTqfG<#F^UwDGO95S-b)Q zf|wl!;rI?NuA~=P>hg^Da6p&8Se?(jwWZn}cGTN0&0;LZ^p_)Af}6|@&gISQQVeG= z({Y6h4zUz?vkXpGXaA%(zcx$N@Ni4@J{rO)04#N0Z=NuW9M#X!HE2j^8C=9fE#*xA zF((?f?r{6?ic2blIPy)?wO!D|3^e7FjLv95qT2bihwZ4}r}zLSfJenDfS<~B$5h5H zsfUU{%g$x^JyA?5lI6Twhp_E{$}x`Y63!QQPbWd52-A5w!SgsLBg_?EwLo+UIGwmU zb8hCJPC{k6*fO<&)Teulb7m-8`8|cRA^{6Z75(Xi&2JXJ{jG3dE5ee(b?!@l8u@lh zB$YdeI)DujGhkybYykWBzn8)Kq-fVXbOV3cB0J}UU5l6nt2;AHoL{&vr<9%j@WXA{ z0G)kd30KqjJDy#(bes!o6S5#x>=^>01=~VFB<`WkI!IFikGKKX%jY@A zeN1mdGLt%MfG2k=!b^kD56W{QwF^FO8`K3Gy7uRz z;}e!l53&kf=C(lIN@F4d3;V%L)) z5Pe9})vOOW2&VfDSfx8Gki>Lx+|QS=vk6)TYCQcU`2ds5u7(=eO5YA4OI;_poLJd1 zPP`^)S*WT?DOj#}1UZF08_fHJQ8iy%f~sqNe*IDfEcBh*0mczPQ=(>)e`!8WQoiZo9C{6=}hrllecCZC)*Q)E%; zPZlzK#$}5$&I<%GoN%*3GBQokvyfFsIhD%j5cl)c6_B8;!V@L23%bE`<+2Cx%5}Ou zgfgKAkSDwwCAlGT7I3mVI>n(U&KWx}M1mWBJcL$DLYUxZOq@Ytm_&?}_thv^SgLwS z6#Q^u;pAOZS7ffX=aqogbW4vO*P&sdsZu3bakP$5TLWeb4+(gqlnbcwweShq>4?ug z#QF0SA?Mg?6b!6*(oI-*F1nX(92O%%@-AEqvi*QRo})*uvD6%Ex;km(b+TmfAkWiU zmyU&~iu2`@r$2K()8g=Zoy4vn%YriTVI}1WovrW9P_uB=PJQ|0=*82Y51;<~>Eve) zHLn)M@u23j-*XD5^P$`M=$v#+!M;XWm_+BSMZ|*BHG_2Dz>J<{y>T^nmYO@85q3Jb zQ5e@IWI^hxL0RIaqJl3KUs*!B5?~<^xpB)+qVnGjdS9IBl6*K*Y#JbCfvW!Jka*QE z|J0k-VFAzfHZ&y%acr8QX5nVqpM|f)uE#+6qmHsUQ}c)=tor-S+t)AOoV@pEq6mcy zq`8Gk$}!=02#5rY(AkN@B03BaJDr6>H$%QVknJ_T2boaeB@(7-< zjH2RdhMI+|dX{2#hS*3{NM&-F)*elm#7B6#fQRTKEk9<7t5$4JC&Tx6o~OtBc{Log zq{RGn7hVQ5OfYRsDhEyCyD3XTm;;?eC8@4vel^= zc(GIf2|tO4KWDfpzJs$ZH^Aao5Pju?`lWU-FWHC^ULpWN6B3lP`9v%*)!?Knln}5g z4)sLbN+Vff%#$44%0w(U)$atS2WDsE>A71}yYGUx=DhKL9l!`Qsgg zIpbD%-2%!r8%5s(ip~foW1#96X71THw>?g0eF0uQq$&cK8Q)+=SRw}4f!^;D2qz%_!-LGBk&S5H65$N3AcJTBL!sI{zO92yx53SfghxMGXMVV3LB-Kq zHO$|nMW0xk~Uxto_mq$u(#~Ki)6NdEO<@A7QM807$$VRRDd(%XWifgSuG;5Hsz!GJkLz6~2 zxU=6C#%2bQWdV0xc)S?F+fjI(!PpP86a> zh*@sx_6?SWzsiJD4>HIkUo1qFAvYT#Q`hZ5@5bH2mI>9;uUa5F3@R(9C^+j;vG8=I;~C~G1?aL1a05BEkl0J`H1bh#b~C)W zD8AoFD$*r%YUf!cEj;b1L2KGYc{`SQ$oc3jKOHXA5_M!Y<-RTN?#c!+9R>5Y!q}wU zAoE2WW}slXrz;+HVoG+_;2O;oM|Vv!7NE|p2+Ncql2KT=1Sx$ymyp4-` zR@^`m&L1j4nqTYEu@H5+abm^u0EAn2SdbGV?vddS zTC7ZTLMVk~G|+{PZN4NE#Q|Q6hy|z4r8DxSHKb$a7wke2Wg3+XfJjCY@wRUK=SUZK zTP8XW`~8Rzi=Lx}<#%;z25NMngZf17zwzg0992CLLaAxOM{JB21;!TxBGjmeLt5Z{ zZ9*2Lu7-@#mD%D%E-@MGHbrJ1=fi&9-jXvitLOZ zG0&|xh>)A0WudC%gChzQE2_iD#3)HS=BDX}w^3t$LO1X{8_`QrWBOjwK}0FHZ}M!3 z=7<{b(e)ZibW-0jLE9yC4G@#UlzWOxgwN?~x`0O_r<;p(gaubn9836o&E%oUlZ z?1nERC6X!!oKC34dd96%417gp;0U~Fy0#0tyAC1wP;Eyzc7^N36**8Zh!YVv$x!+^ z%-ws%t#e)1Bl3pGS-@%v%NYu?<>8(gV}k-;fXFHq!oNHXS zcQ#bU#cx47iDnusbh*#|t6YQ|@IyH=^hg4d;0%{|>+~|hHAq-sD!IOhj;`Qh4e9Lw zJg`sh#c&W~HG9}`ICx4O=M9mwfK_rmYq)}E`PB}a%rGdqToz!83_pu$1@Ai<9Obql zau%?PY?Qzd!+b)MY2-~Nn10SHCxILsb<;I!i-@=>dKR+oIz;a}NkuJnF9Q6#EC5n- z+R3UxorW$^J4ESUkEX%Bsj~6Rg#d{Sjr8Sl?;M-EIKr?9yQl~!esPEomp*STirz** zE$Wa)MmIyv!d1xtSKM?L6(zn7+NmPDrTajW8nRU#ODxGoiCXX~BYvhk24Y(*l^238 z%e9CEFkne(U%`ZfKg~ay%)&;9S+KfO_3X={dD74R<$wSDf0zR|!w22Lznu^J7hLu4 z-wgi=ST{B|Hum;*{$&F{JKKBm@4o+gV`pn`Z-4h+@W}qgHoo87{+Er-txfz>Z2S|j z7?OzfLS32SUl1)nF<<`w|AXHYhl4Ael7B${JVGA(k{|4H9DaKB4n{1#xq&6yzUtop zZ@(#?4sX6XALE^;cMFs$+9{rMPkD@-iO;mLp0nbP5V;3)y~B4-5Sife4e>Ah2H2XO zqx>mKNHA+lmI^6>(eHJ-a1w>oq^jnhAYKz1uZQcbaOA04=AIxyTWIYGqLC%T5w~)n zCe&5&ZRi+IX~hhrpbNsdog6!y$eH9lFE~GiR4{n`$??;pBiYr_m*E1~Vf@mg;5XGU zF`%H8Bmkt_P&t{^@EoXVxs2v&gc`h(PKX@zI~!m2Htxdc$J#R)4R5e;;-jtoyCB8w zb$% zd@Sy~`+jR<^Wj~2-HFny2M_LYXpa0H;t8UgHl6kKg_RlCJOn=!+N2IQ&a~Mj8I`2j zWXw#@F>N@kuIIBJe8!%m*BON5`*Q4bd~I%52hIPDj)=xRqB+wmZi)f`zG*CZD^I2QnlMIi-+Z1<>M3j%qR;L|scIeL8da z@E=dG!an%Z2`C$Xgvi+=Jr;XF?TU0-_{AS>Zp9F$?DK8hIOxg)jUU`h#~&`_@x9&M z)KW~p+1svsVQ;VU}JnDj2QXtK~C);4l%yn z-8d*w+ue*q#|L&ZY`eQzTf4iFfqZyxt3+*YJLAmWc7|>5AS1q?H@&}E?&5dax6PQ@+g@b+DUtET_`rS!W^*I&3@=Je#~go`d4+4>GG^iL(knX|!p#jcc$-^WIf||AOqMpcH!_an z@3J&)Zs%i)zjKn?rH*ZHmxpO{J0Dm4oek{f_D?cJTyNaNhU^vIs>zN41{`~5eg zArDDfM;EO>y7~i;3bjnP?{Bn5oy}96oqYS|^+`)gpTb$wdWJRe5slLA*5+0VGP=3@ zXnUu%vAeP1A8x(ve(JHD!Q5wGAWWup;*Im+=uuH)1PkF8u>Yp8)mtas_VptiDh|5x z`AgJkj~&>&?_fN|5f)b5*2&i!z~ut-K#qbQixG>{x*x>U5DNM%k>LLF*5Lrx@nLy+ zR6IQIP2`!ka`$2DC5`CTkJGDh>tx6YcGcoO;@_?Y)BD5Gl|1^UKOMFEEjV7UaR4>A zkw3>jY(2(d6uYV?NH&YmY|ludJVn$*`k?b>7CQ3%?O-7?o>olGL5b zFUzzT-TWIIEw$hY#NHxY^>_=gys3|c6#4Y9SIAG~hh2AZoQ&o6qWdMv%A(JUAc7kV z*G5mUGR$ecBUO1H6}OTg)1p+{CX`sEeA0zTP0PlTK=J!+NQoo1q4q>7f+DjaQ zUlbp^U$5IYl1=8nk3C$2L>bsagk9C}+=cCt(Kuj3m^n6|@H6VcCbp2=eVyS>xrmJH zSnNHVmH+p@Y+j#!```bvaUH|ez?{IdhkMXiRvd6V-{}u&CKhM6I;aaZ$Oa_&+Bb2l z3CM@3qI?l&fs-?AG}9BVa^~4sJM= z$EEI38w?hk8%d#<^eRX?PT7l7dqy}F4AiDcy+T|+m(GyrVS<)M89TE z#V>2f?_h1M>y=j;(*c<EPplfpc0_dL9dFUZ`mr+M}YEx8#B| zPQr8gdZ-q8H62D}e4n}+E)@77if`vVSJx;^W6N3)1H0&w36Xi9dhH@>tn&N35sd4{ zu&oJtUR*Rhro@CpDm!N@3JGH^K%U4MR8YT*U$9#}^EKOf#b#``@@+q1K*P_NdrY&U z-Vu8GA*lM#g?7*vu7wPFwj;}owCyd;3QLQf(mTcdBK#xV{e=*Cc#KdI8^?oI2b*!Gqli89m)0HiGAJ^0RC!Qb#NE(?{U>hD556Os&fuL%_FvlBQ zyMU{gxn_tDW>O1+gCMrZrod7m5qwuTaVFAOTqLr$DSGui$+l11TN*?brW>qp7nF(Q zE(e;2cY?myNclR&9WU^F&3isa;#b&*8UrR(;i#BlxkonSpH`7bZX0<0;u*?wh>4XE zDSuu?W_uUT7OT2HqnY+<|%T38KS+7t%(@R+_C$c*eAoG6Nqpu znpnqG-__8@o?K3Yxu@9M)!+AVC1pidXg_E?DAHyTSxSFwfDm~;_rV%CdzID_sfArf zXbZYi03;U1oX2XK+^<>Wxq0+;PxF2yAJ>qCi!LyAA9WvV7#U1X$I!fu@^^I&)s9k5 zpk&aJQI!wWG;^@ykD73Z@@Q-8ApHxuOBMZd<{3HFrb>fh4Yi6qSd?T-qD`z}UH3*c zFr1@QHJ*0Q71OI`ZuqW_c%_Y-66dbC-OodXs++2QvZmq9N((S$=?xePP0+~N>h zuH$RXYc(+7wGpL7)v#M>gp(KCDu@vnG8-a{ny+h`L+$elK_U&<990)R3)r4PcXvSkwXYm_q8^S56cD zFW-Saa#MKWH>-i|?naX}P97Y5)WL1zj*P465a}^iIT2>n_vNM~MpZVeTf1}BystN# zZ~xg+Smv?^>YLhr7`F@TX#}y0okPvwK(zg%CQh*|3o{<92ek_m#an#{G2uS_QPFxH z3^CqILMdc+H$z8w>k^`+;j@p8FZtRmC>jqLX+B*I%0jPYP*8gWcVKm$2V+BB;M|qT z5(Mvv?Bv9S5qv_C3-g|0-ago=^wCn_bv+JF3+JlfL*0O@Jec{;(|pxuT^%pXwN1lYP@#o9K{>&I{Q>!32*BLu>tO8E?`p_u z&sTUV5XgcdC@5u6J6C6T>%7X`>rJ#xC4S-{Bw zS>;1sEAvsWm-9jx5BQB!Ih(oy!>NYABu08B9M0zz}R}$T>-8rO+Y=YA8A|$oLDw?tMSl-~(`|~Tu z@aow>Yx33wowJf{$b<%Nsj?kPFzXk2Hf#N=3oj*)q&FF}QMIvyIf=lqt9CyaJgru7 zt5deP>z=7;3@{XbQfpxV`kEypytw59oamjI+QxlZL;j(vU7&-` zW;MpL?#{ZT^dM#W+xUd|Uga?{x2Ufq zwzZAZV^{euSn9adVPr56LNQ z7keXPf&$r!a`VoI^oYkZ4q@rzj10DZ(j6RAX-IzfY!kt>7>W@OF%I^^ue;Hn=a($* zfSg_Y3a?o@pp{={ZM&)q()?DnQ-&*ZjA(OF5HX%F_RtU7tr%q%qTuX1br5!76jcl; z1NNdT)RGG(bAS*c_h!9Q2VpPPB?$OGbiZI7xI*1aG+msYCPAY!9?2Wf42#V@RWUkY z)CnHBS@m5F#hq>S?)@IGh1dlp`iDrh?)w_bdwHh7<~AJJUOlGy-(0bHy5(Dj(*$Yz z-RpB~G?D&>L-r07ENbh)@OT#gil~~PRojE;`RC4PJML9w6@tF%p;i-I&^SDD1xchg zqOxcToJnpBs$Dyi;IX);q3~g=B>rivR*RAI5-LQ)idap$wnI@#xDKf!LE>npu&X~H zMC=ON6u>Wc1~oyoFNpy?|J48-1WLHe_HUX@R7woMfr}TP6JTp04v3}O{0_g%EGZaZ zXOI|}`lu*4MJ5!@Inh!40Ety}E%^JR68-ILu{w$#JLv}O3sJ8ff-Ha!GNpc7OoBw- zlL|wlE)#Q+GzuY;t06xOabrn%R!nj%yv`1d6Qdz=wf)F4R?rW1zPN$-uLp>L#f=ei zyEV=xU<)I=;43CIj%m&wunXe{=a<7T@*KAn9Mw;y0()Y~VO;$v2+=SM)ujECr3U;v zu^CP}$WO^QNX0J;VnqK`^ZIH@UequqPQ*B4bWD5*ooE8ueF*>H#Z0ho7~+_OG6ILE zS0QLC(ykk_y)0!3T~g}{RzN7ZRXfu~7aY(wN~`w@>R zMT^DD5k)0j3`H9N9>HTHFu1x0+sN(CTxetLh)XE&fU_zVP0*_CK{@?MmqwWd9jDtm zeOx$1#byNyNwODRR1k+%)2+xD~w$E>w988q5ja(fC_04QagZ{b*7Ze0ow;0O zrI^2PvDjrsbQaONKJ1sQtPOQdJz;(MxD>8Srxtn1 zoWjwlH&KXERE-wC=O?T(pI~>oh+hP=+ZU;i$k(M)i#&?FsL&0a!OBqR^McRS$Lb6AiZFKm-8m(5OYIDk&d@ zdUdzlXwIOs#&AB=9aC!n+@WN&sL=H;Icb7gEw6P$B)s-2-z(E4?mJoS?OIeiouSnV z79wrn=99JP)FM@@UN|uCW|J^&7J9g@&7`J8qB!<9ONKhK)$)=H$ko>+^Uny~qi@6= zXIPUrdQ~t2*yDT8N3z~5Ou^2ngjxzQ>C7G+sKLQ1OD4{F{bK*t*O}xd4=Z52?nM_s zXA4xWsByVmlT0n{lEYz3;guJi^u0%1=8wPC6I2vFJMk3_=xguSupBcgewk z5P8q<3~Ms}<^CCErfnMx`k ztxQ0|(LUd(_f7A|@SEi=E9st#G19}0L|m4()T-&#ij8W2;Zj-AFKb_|@P3Aj0o(5U zaHIA#He@mIhHplV)CBeM7RsW5|Myagc4d8H0YH5X8&g^~}+jvhD?K??UICI(Wx1Fuj)(iq3u#bn+ zQ3vM)j@xl+=*xckIub#>izLn_l;J~yvw+)=7AP9vi4iWMnD%k^1cYsj<4C!>23{x) zRH8A&#LiJK52#=9^=edz?5G$K%D8VvU`6KGZ))gP3s{M6l1Y)~Y?m7;JyzY~LFK7D zNs-wQ2v@+#@^i)`<(Ar$iLY2#A1p7e=_ux$D}R^M|IoX1vXT^Sdw@7m|LMLu2jnws zB~Z{K($79D5oX9O3oW9sS}<;d6ybg#3YwEX7d++t%q0PhEv@is9iF=4FHsMrkR-M& z;^4pqbye|L-lj};VZvsN-=^}Eqo?3`L{LCE;eFOKwN2D#_KUuz9F$_u*_rZpIr%A8 z17GmyKzFlYEZmooH|5W3NufSpStJ}S=$<6vzm9VGsjQs|A~>DgvASMW3=}I>NHr+v zVeI)B#*>CG-jXUn$pc;`Yy1u$u4$5$5^J0EL8v}>xuQw?Kut54l{1m)Op<9`0F)_6C*1T;CML*3rD9l?d;&_3R3fC9h&{h{FPZ~ zw7y{M_@Z!-}F(&JoOn9pwG{iSsM_Fnw{W zzN&y`F~^Q`DkdMNgmz-mai}Ec`{Mc?iPU_Z6H|*PnS}*crbx$rlatUxK=`OY5_tlZ}e{hE@*WF$N>dzVeUvsc+Euh|fTDKVGyU%QLe z1dQ9YJ-Fz8dN7#w`?=a%;Z+L@)=wp_6I8NwcP!$P@&yBX(|79UwG9lms1N{JV=tu@ zI#gLZF9C9r9!SN|Fj;8WCgF#apIC*%yzCJ_2>V>5r<4d);M}WE;?tL_P2GyGE9gJm zu2iz@3jfFXBPm0Ot3u*XoRGB-RJFk>@G}=fpD9})(6Ei@I$G&@Q(hD+pQ~u`0L9cQ zTJ%&drZ-r>P>-&-ykH(C%wqW^HaYh}*QUhdZ-IkeohNbja0pIE5{}>Re(LraZPD#! z8RQE+oVF94FOj$lJdq1nE|FysdobgXgywd<=6U>eFlm4Bbygsn5nd!Z>zRb=&Zfqo zU^~wQN$5gXe3>zAAbTOYjx=oCdogoVXY8AO_Fk!J(G2E++ zM?qyQ^m5Yneq569D#BO6{XVl_B#kLyNcFb~rH7j;<*@`>>`eO-+5zFS-BxdaO4c&W zSn&7(s-3tGBHvc0kRsYqqambUoZU@wi^7MVhj+8X3o;u*^DvgANoAYW0b$m{X%iS8 zvCn%hLAbdIJHrc8uz|~VdHM6~^(e>TF}NxxAFdHC+ToQ>iIS{+AR~wZP#zCVmMPDQ zhqw}`i?D2(CppFXCrC2nXm%dOm|g6RI-lWP_S%!zz(CY)P-FmN7mlQHtR9)U_#14~ z-3^J-ebv5>&@9r;M7c9wLi|06yWe;7gQMlFpK9IDthH6hv*cs7i=7>4tIM2ssI#Mp!njG(2!F5!v_w^U`RinJ@M zzRyTk3vhT9=)+8c9mAX^N^M$&Wd4&$b10Lf3k{@@;CzWeD3MB$nEez<<65i-*P>zk zKUj;ls*hLPWAI!{k}l0CTv3iR&$8EH-g9-$Zo^os&<2PfI300!`fVT#rrp9sQ~)R& zj{+6l3-?$siI#n@4%R-(NBX5I062$2{)j_IXl)cKkd!uDgPE_H--BD^IzWeEpapOyhK>#bTCaeL!n=w<_X zD-$tg9~ajj-Ve^dvcNZw^`R+C6;79bvldRgGR6_b4rt^K*l=`%gk*TEaIE$>K!JZ1 zt7>^*=09K8^udlE4`Q7r`}1L*#oaJHmVU7oOw7_#nyZY=N-x)fO1G$GKy|C&1ER(-z?8LG5Y zXxVZrw{Fs<%M}>HLMh;RJ>yJ>3%y)}Z>#!%O7Xe5R?`B%tVXujYb8vdS@?)Mdfhx} z|Kns%KB{|N-NHnXSdISAn%Cld2|i_)p$N>j))a@=xoC zs6RzK4#6q!&R(*sDC)kiBV6g23rnaB1cVO;2doX4{o~}OmYENQ=Eff$TwYJ6{UMGx zSddJ^V8eDb-*V=kCPW6TY1Wln1gZ}UY0-Va#k=s|%T+pYsO&e@bgR#K_;x@A!|M~S zHqJ?#FDt2U9aJ)!)ahYG_oVFYO&eKSGa}OFJzLrKcC05F+EKxAI~=By;2bKQBlDkR zTi38jVFDs^7{y#;9V$lef8f=~{GLYgckd(9D!(if+d&MWxBm2bZiQzOEI(j~;_83x{4PU$n(W#Vq$$x%Fr~ z=5)>;-^Lu7=hpH*v&X^jn7(0Js@%etTD`-7gw#8ifA8CKPi2leRwecaT)WlBpYjB& zS-!s*c5tWP0Lsc8Tfj# zu~332&H(rplLIY(m>W2y@)3p75GnI(QGzAJ8i%nQoW-8b+o}$)O*%GHmP#zDK~C$}t6{UP~dzv{`Ab8cg)n=L^+*L^Iw=G2lqOGIt?c-Ug^_ zv($Q6{X!VHz@&U7+S#f0Pgo>ph;NSaVZWc(PRs>P-_2Hh`WfNk%!5=GdphTCbz9Zw z%lxRW@5zd;r?|28^jj(i6dhuzG3;;T%qqLp)zyBL>or5D_dn|1$x!d1Jfz>(B(gZq zeoRgO#b5J-Rk8;l-|jw}&ZD|GANPb9;UNaxt>qPI0iIm`a9K>`B+%y*2s`Ah-nlp( zE0qUM?5_CGdszO?fr8Ect9LJ66i;8jd~^Kf@M#?AMV^&bM~KDpyP=w3P^n-R?*!*Y z2pZIdQ-TE-$>f;%Xkb9tUU>OS03gYu(x=%Gx|fSb_2~!muRPxez_7a=}GfkS_{CIbRwQ&txkSNm+% zWc_s~6=92^TimJMOp`Py_HL2q^QJ3%>q9mWAjD`qy;DJ=QRIS(xTR0C*Oq)O1+t5H zO0T{o>h;c~bMyD<#m!xm85~a@&<`eaU43G5NWNes(@6^jXPz-N zxz)kC=&q>YU#~GaK>NL;e>ypx+<|AG2ke}POmxoDsn#ZxBSa))g<~3xKsJaD71eJD zBxPRpw>jPF>rUOB4j>I4oPI0UUm%70^joBGqcN#+&+7n2@cyy$?t%x=9Uex0O%TK@ zy`jL-^;e+>;?4>8kKj(8+YV^@krwGM^{O&pCG8cPU7$BUZ7&GI0^K6vg*#D6zSI@n zlhYojrGCb^K%C-fRU{hasOide2_NSe!%N<9@~;MfLB1;p2#OxhJ zm|upYKZN~+b1pqPih6XBXQjdEx!nGZW5CKI1KO%%KGT~_U4#>qEh2ozw0yX)<3=|% z17^MujLEQ}3@@ihwl-MD%0|S|!U@r&sHuN7aM4C!q|0!3Rm~#@7JWW#8%5OjTz7eR zwi|Eo^$qhR0HKJupoOy~#Q&xIiR~}(N)92$YosJxyyJ4s&U+_ocdxp>zsCR(8^|Ji z;rb7aLM%Lw%Z#rDAJ1E^zNTt6DH`ERw5*SpTCPt?fprOk8o8$fq*S7`wo9#Kr>kO< z=RTdcTYZa_?{PFLY1KrA;}Eo}X@qfW?o8baS?do??t3oRK}Rhi*VV7&tya&bD5KRh zg2Ci@BS`1HleZh~c;CW%?U=*_N>!4`LYdx<)tkv|c6P}!ucjz=W<=iNECs{NR1IeP z(YByN1d zo6|)-)C&CHS$&R`M}ohzn_%ZXm$tQsOEjw5!V)K^tPJOk*z-?G2eFlMr{Aug3F)~& zIQELKSA3PyfYz_*H9O5zzbi;bGG>-BE${AZhvptuA5M}|=}e}k zz51t;1`lEacu12vOOMyXhn|D^A^K$0zM#yT(|1v^tmTKCI>YJQ|YaXp*sP93VWi<04wh^*7 z$24E7ttzRZQ1q_3c_9zf6^}wmy@6bACYBv-`^b((-zppU&O@ET+C#cqg`#s?S(lc3 z=hg+s1Xoewb`v*V6TymcN|xj$UMcftb1z=FDbYO)+wZ>*I3=@583R}SgjW(GAukk? zA9r96NA9daqKs^7Kl(xuPWwIwhPj4SXbEI%kTA#&wze|?+d8N&NfR`S7VqFZgJQs< z1({=xE{*7PWnKIY3#z*A4!CsogX~S~Tg5Y8Tz?3=^GcNEHW9n2wL(y!l~RMV9gz{l zyRxVs4kAT3RiHxBT6yH62(3-XqC|qfchec-==v41bP|yt^F)ebJ_FLsw@mvxF*Aeh z%aobNA09RgM-1iZ4nFlp!-3>1mu6ct)C6x=ssTV*#yHuh!<(mUa4Yu>DnavFNqDtr4~;yb z0z(zYl=nG?^~7p*S|z^i&ylXYAv?|q<7zru^$tOJr#Y?4tsUK9oJoPg+b&}ZYeU%J z%JGO^C(y!OLUK;x?r~$43zsJv;rLZp$c2?y-d}~N!K>bUtjeyWBC0FWb0ALKYxi04 z>dDK)AO85{#k)f$vm)8e)njtU>`5K4wTKvOxW&If^snD8MECLCBibcMSM2MNR`Xc?q>c=&`HydJLEX;PM5rNQ2a%EWUSQr zM)r)9@xj@$rrZ{_k0K?v{j zXn3vjmsW0&PeCb{$R4?y@>=aM>qEElOBtIaYw)WSV6>Ssbd5k9FtYEN88^D=ZCZ;w zTW%?qCHk=kH&?qrVO2P8k)b%i#Nf$P@fQ05-booZZJ5e!xEDL4q1>jH`FYnQWAN#$ zO@M?=E~Ng1Qx!#@yn+r2yzp_8oFXU-49^bocjCNlf|fxV$Bb8?NbMVX4xwEB>%o1g z$TI4tvCzY&E%g^eBNRpJx}cN!+Z+AX>pvLBb9}wQ!Ks4!?IM{V(^5Pd)yxMJ1R(ZkDP+uSR0T zoBReio;x&m;5+VNqA(ygnIy^M@z+@|8VqXqL1O!nhX3saJk)Za4RaN7DWL2@_lJGlw5MtvJ;FV7P&-)8m6W$ysLlK^ ziLv(Yhkrgk{2!U@uJCdh3$Cc}?mJ-l60kfH$6}a1r<12`u%I~p`S8Vy7Gl_6K6&+w zh6ikJUzQVPa$p6eoN0iV!Kw=cqxATHjwjs1z;-|$@I}I&S`Tc4Ib6YAPC6_^QGlL{f}uE&Px}a=WKY25T*~WG?r!1 zMQDWAa)6D{Gl*3eyLEPIK))L}s{j_Vpmo5x(7Ce9Vne}Flwgz!e)$R&nZv4HK` zpgFqb9>h3#1DzjKuIbAP!=gkCHkHc5FFjN`rDuUYKcR;b z0^tT`Is6N+qz)p|+IyG1?nPqLu20FJR4G2kcJ3pZmJ{mKI5S_AXl%zj58rmjD23rx z0Ujv#urMZDA}ra15LsKxfv7K88a5q_eU?j|<=KWary$fp*$_BO? zBxq<*c+tc>VYo0i!j5P@zW!^8!*tFTe4h!!nv}{YV~JR&!@O_#taCwM8Y5zuGlD|K z-N`-9a0U#175yORMdHp4svzP7cQbOHoe9z48(f&Q0j_&kPMyF@taSm6R3Vcr$tjNM z1bRmfxX5uA{wQj^o%qTdAZ2jsdJ}*F>j@yh$>fy}^{X{*u z!dKH#A`1gfRw?hvw*>uxX=I`a-&lMm6$T~pERxL zO7Ut~bWypuGjW~t?(5=Wh_<1Bv2VG;*gcWU+~In|mZpQWAu2j|sGP}6BgD#B_f%Hj zc6m22jpeD__CUj!rh7m2ug`p_OgkPnh1Ui+yiYy| z_ZT06Gd;qEjw}=OYh6DiO)fy(zQTq;TiP;xQ7Om5f$ZZT+whH z_FFN|2f3}-hv6C&K@{;fMX!uFI`@UOf0T^!PhrVR8H|ORD+E501pxi<7i{oTKTQ%H z*AO{_SC@qoiURP4n6BZ)l*=rI*xQ@@O2?W&eSO8C^hR@oB3`U($ex3l#0E_(ihIyp;!#gu6 zh7r9tV<3UTrw}(6g|QK02CL4U&pk|x6lCO{JEi6AL~>fHp=in2uJ(2r4J!BfLof2+ zvfsXvu}T6M%AXqwYHq^c-#(pS)^pw0aUan(zSBd5ekib<1W7OPifLDuUl6&JcHv2Z z!QgzG?Q2#NQPu8t=PY3nhj-cc3<7m%K+%KPa{&53QBwii?W?yQ*%14Ilk?1HTq2Ss z=#SXy%s2hI>)#Js(u9gZq?!VBM`c6|Au=*D<0(U3=QgP0P&S_nvA>Au>~!mTTmPQ# zt-L+IudG{`9B7x(xICSV&tK}EDfM$FmQMO33VGAd;9WHwO+OfMEWM!^FKz46cyW&S zJL7J$BW{M8L8}_-tlyp7zKcx+;sbd~@0SMG1upsShC{Jk5>*?lyY9queQ^>7i|UMD zk|m0!g*$G`R;YVCf%p0Z*i@U{#ufRf&2YO8$D^fmRCoV9Kj+|_aYbs@H54J1+> z%?GkSb`pz$qv*xv`!H1#>i(-%_-fIXK-)D|?oCXu(HG2NvlLdL~S7b?W#7-ia zv1js`7TZY}i1t>X7v>9dJVOutRs^&SbQQGM=i?z}D1Cv)$N)RTrI|E1(@@URBfcg7 zpl_?9jV<+FJcW)&x>6hGn{?0xYcOmkX|1~bo*1=oD@d$85aDi|CokeCuS=)Q1zgME zl{I6%D97}F3G?-sHcY6;I5qNPN`vu#5?bA$S>v{pYw8G3PSWG+h;L0Y2A|4e^cnL8K{Tk4 z6X_PyY9ea;jiI6%i_dmWCxQPlRmV$FPIdN^rWIY<*vjE4Hq~T&*6xI8OnZRsOZwkX9uSfUOK}`lOxK$DAS0?R-^$NyMwA?JrslV{@a{X)%S*? zZe>XkR`dt>FaO5FTQ~yS=Q+WOuMIt&rKI=ibOK)st{kqSX1+AEbViXDew^U(STn~} z`pVGB<^pz-u-LHz=v0JNOK;GVJWeR?qzXj*!h2$d)wwVk|SMozuk!Q7tR-W zELoCA81YpSH6HJBBx;6dC6R}uJnJ*`iXaG5ut&dSQl%F6cw9Udiumx$a6K!%g=hCi!wm33aYT7Edg877YLpg~ni zF(z-qedJR}#BN*gGK_s^iMyK=>>~3?JZuStD!(klT6c*8U1_0nLL4M^7(}LM7it;% zr_SSBBPqQQ4ShJ3-$N#f1^`Tf;~9Fu8-Q86`XyPcI|ImY^1VVII_wB2L3Df%r=P&m z+O1SGX65=^ES_XBh^{ZuY{55Da4{$ucD@4xdB`S=&*_zA*RF%log@{k|8@w z)edTO63mVWE(|Ec(RosxugADS8O|k8kn4K#eFyO~t$uYc9dqI2OW^t%F5SV`9{bBD z`4%mJ%J6i_VXMrYc*G`O>|1K(X!j(%kl0RqNLkVd7b%&5G0T9!f(ddfkQuHnGjI${ z;bzAoUgI=AQo3<<1#!@C2ldR?FeEP!L|30DdE(?6tT60HWQ%YN-y*bN(A)?!!`9FF z^RYCH6qchq!Qu!P@QVlg0#xHuC?fvimFHf18u48mQii4L5mV@r)Ec&QpBPr_Sh8G`th}oqn zYl}n5uyn0QjiLiEFECMvtdw=ju=Qi@VB_DCka1)K~+KVxE% z^2MMB&k7h%aOe!M7r>8K!*jHqvZOBhB=b+sCWJ# z&{a=vU=H_!VxG7b1Aj1T9?psQVgY}XR0ci>*T7iHO}7{XsQSCPb124brSgbIJY82( zein$VhXFMgE5Q=dV_A@ZLCI@M!^3H+{0*rH zTu2FS0A5enxkP_w*6PBz@V29A(t9hwGF<(T*x5bUKiJ!T_Y-I($*#uB$|exEV&wx{ zDMjgz&qlZi7hJaw|X_h!v*gaTbay; z3^0l)(~=(?3}?oqa5L2Qgae3Q-m0{{aSGS0JH1F{=MSd{*BqDMD z@7&J(h@6M1glsS@H_kWl+eSoN0F~kC0+v+5`84>-L)A$ZIE)(`%WeJ2p)bJl)dNA0 zia0I^Cd1Daf2SaJBkp#mRw}eQPB+3H#7F6tYAvk*%W!o`8H!Bw_7266 z<(tf}mdF+z;^C}Ce+)`ad=!YCZ0E%xWmvk}AGV6@63RzpDhCuw>l;1tAUck$WLqx= zCBx38Vt}icBtZU6CSy8g8A^as0v`P`?x1h8xxl&3r?>?KS(Cww8=0~VSS3u?V=NlD z#1jJCXw?c)7U8sn;e5dROtkJM)&YvDe@FjMm8oS;&Q#=z%u~r+f zGE7~%hx@&gjic2RRxVMRL$CAT1%t9cm)-}4k>cV*Z@e`)Q(a#KrL_b)L)^tZiYKN< zvY>U^GM9);4n6g?z^aS=knrr{kTNV?=-Z}Irlmey#g$M(D%j=0KP#aN^j!d+QTm@# zN@v>rI&ML=pl4WLW;sV%D>Zuv35eLogiM9wAwkN9GMf(YFQC3Cyb}HusQbYHRAkRd z)Scr#4xEB-WI7s9rVF!&q-tF4((jlg!8{_`3j@kH!xj7>tKwkslk!_Jl>nR^6@pX= z*xK8Z;v9afiO5S)0GatHCPW;s4OkhbF05rXR1R?@=$R2jHG1=)TOaksiZc(7M+_H% zkzwY-xp3BzW$nBJYvZe&kjpd)EXh038x{nU;pdX=C$j*M?9c9=*J_Ze{a0y~b{^ha z>U2BzHXdn#ZJM&!3a|`Umv55s97KQ~!ZAe`b&tqR7IT_AQ4)C)0^a4_GA1j|Z(Cmn zeQ{H=TRL|?c~4Gx)t)_cq(K2V;b;t;;ogx1rG{yKRgn{j`(aTy8HTO~2#r*>$4wd5m3SX@&r#BW??x(Gv1v|N0V+5qQRW)~nHcYe zG^8e=8NR+p{yvx>V#31*{3T8BpplTq5bRU9gpoTdrf8hfQ5W}itA-E>dV4Sd{csno zgUoRCJp$@Qe{JA{*qVs7Zau9CPC9-A@dJqRqi!!bMHhh-5bxRfpP!#Ae)O9n;_DO_mz)USnc2o8`uUMu@ zP6E-vTi`Kl;a66;2&Q}ea_iOhft|(t743&2Ker1t!`@GI?a?Gs?(;C2c=_`Tf}dQR z{5ecH#xi9CF$a!LH_sv`5$Lyyv%AeZ*~oqt5z5F$hIcBdD^g4f)z5Q1oQ;*r3PQl8 zxH3`1!jS->aRM|P$6ZfB6w2fu;`pXA3^9Uy0%TtZWuX6xyD^Qx**dodw>*QVUjFh+ zsPI36&_m$%S0v{A0KL6~JEC#Rv~9h=$Yr^>hfWpcupv{G*a6vT*9a~gflRTi0-E9L zdojvhcsx#_L8xMp+zQ*-dGqRrcU!+ugkKIO9HOw~cZZN+<-2{88=0l;+9F*ywg&6P z@&PK7A07xvpuA754>Xcw$PP!7PQRZhmstFT;MoEYYORVH3-l)}anFwHlBhibf^w)h z$`6uLFfojP`&~qwhXR-l&6u%mWr>+aGv>c?n<=pf9(AD zVSjh)rI}W6s7(fE6Xss2(@K}7%uO*H;GJ{FZM3bi(1Wth64jyS4P&5U^*nYv9y z8)8A!IQF_Opo%RL5p4lfhNrI#b*W@E?9cM^xNXx^yK1U2Bi&a3hlvC_KO#Nr7=Bx- zyA!r~qH++YwK${x)eVxzrEpp z6iI^&cYr9f6|y?Rxfc%#`0XI9FK`ah^`68kS^$;d>1>4i76uo`((+e=58SGS-VxCs zu#4Vm;u#N`Kin61Jg!e0urf@Yl``_Fx18n%lo)C7X3gFT$C_mUCaGTw1Ilo8o-xBX zxm!gIdK`CJX&C{!rb#Db&hO6tJH-jfHRNzY1t?DU&?b#a43~g6l z&Hd4ZRjW~btajj0IcSQ@3(A{C5jJDw*A_r!c)H@-A5U=7T#iR45X0UML@1filybNR4&p{V39z<5~Sr=jv z!x6|0jh|Oq2KvR5aig&~s!ygWgDA4OoIxW+*s?@nM)IK8D31 zm9dOb(^y;))2=CpLzZh%mdMr%xx|r>3jxV+bIyf4OKSCP%VD|oG$^feMnE`oB8Dx1 z%J6jEi-}ygyA~EFD*|yn()e;ZOcP>jA1K3IaW6pNO|C`iz*G}9b)kU2--t7VP91Pp zQI0PPC&SQJhvPun9sT}+=B$dwk8BR}^Q8J4($Dy9yXHo;nCeRHweoz>0fSO_K zx^n*<&4jU{5@Sc=GNl7$hPkj{RZg@gna<-R1o0qgSagy|x?4dC^Ee4BVTzAK%`kSI znUo3KO7sxsW;EcG0kWOfulKhOoa$d3+b`&~0;)4`fcN8`#nCc1ynyqU63%7V8S1V| z2Y*38A8VeD&OqAt9dOI!fw>m(06Xxg4v24yMih{r4`RT45-|7BVg>XJeb=sgmzM*J z>B&{iXa*W`zru`U>xEncPNip4i6p;0lz@JSohorMm(bG{SExZZ8zv$~N3>lZNc9?t zi_}LdmLSnQ7KM}1(sc}%Tu0qed9}I!ig-(!%sCh9S{Ncy)8PanjjGpp9+(-nu4nkQ zivcZ(`O-{{tBH%5itJ2YNNBkTj521ip9R#;P#i}!B4)oZc>{t0pV95aw1o0j>kQ7P zi6~ecQii3U3&YdSy`Q)D457=ZGXSvw#t=8$5ISfqpM|Y2lI*SU#t&{S@ zoq=Vzy08yhMecYNSp#t+J_Zm_Jl`itJ4PsvFrZ^^V}_G)7DsGb0+-<%rTgd_Q40pD zq`oDQK!t6Lrprx_W$<0%8Dq#kIM{x>g$qXBZXU$S01?U>YNxmx!6HYU3yzqY#;$F_ z%P@ASC(Na$AKc8+1eKNnem!Mv$ivk~6nWxQknJM{Bk)IGTteJT$NeGiABZd161XzH zv2O_U0nu}X$&9(MJDqc=EMb4VgP3OJlVGZbdT@-mk(CIYcA;k2JAb^vaiKz5(}Oy2 zO9utoT`>|nrRQmkmap&`oFLFahsX)T%HvTac015AY@IjktkWdX)I(q`$i3{ClBI-j zsV7?tpvrj0ObhH1ZL?q}qx8`VWmqIPjvujtkhYJskP~tR(~KZft@MrdOr&dD@G^|u z=40IIG?Y0@1}k`3_wHwb4IKA~n8{6~`md7yt$! zb;e{b7W`U^L&~u9Q{JQz5G1#KP4v3ZlpSXUC~BzyM3W&bb75KVA+l^s;4*yuq!%L+ z`-u8bZ$f#56MjGOSZGExmR!U$i5vvj_A9lt@iwOLATg&~1)AaRr+z?$0oF@YE~A;l zBoY2KUzg#%tBS5Dt>77#|V)!Kzx#{QXe`F`-> zL@j^?Y^=cQ7j^BC5)8n%9%(%*+QdcvwQ|MDBok<_xY{UqV4?f}{N*JTz*z z#Sl{xTkCafLIs-|*xv?V8PRIs8SS0F5pJ|~4;jQXdo<)M^I$B(8aNOyA^*R!cRv?I z)3GDz+kuv0>za6o(GW-0bi+$F9gn6jm~aX4fR=2sKeu0rvl7^dKPaZ8CYV~gox4LS zV;P&Zgo6}lNFEtX+tUskv5E2xocjzzlVQ$>Na<(jF78k2wh_%1KxKHk_Dz(S5Z(t$ zGh~VLZ*&KLU{(Tb73hbEL-hiBJXbz(?Rz+B(2j`Z^@&t#3ton?Z?!F|7IdkQ`6vSr zGrB+^qmOb3ijCmr#mZZob>Y`7Z@C^R+XAQzPv2EQPui?QJv<$L9h`K(3{McB z@4O3c=nqbCUo0B|*h>kknv`t?W`?$Jumf&!WQ?DKe(<5H{G`p`spII~O&La4T*NrR z^X?EbtlTg>oDEOD{T4#$q}xSbSG&W2U6^KFcmkNO!TeJBTkzxGah>n@dWMgifQPeh zza1juw%Z+^r1&5!I7J74R$_C9mor>kVLF_3A9ucG|J2i-94`;YNm|cg?Bx@!m^nA}}Bf7Xeoc;dy91p?~l6r(L zLPf_}-S-(p7i@Urap%e7&V7QlG%)kuJVxG<$`UaJacL~f%XBukeKW(tg%&sl>_QZR zGY~2FSI4{>q&&eJ9xRRVEGA|h&i?R+$DKd^QPyj4s?O@k@a!WBA8pB|ABU&u9f`Mi zB^%de27vs4aq&M6kIvBJ3zT&aq2{EttbZnh?9Qvh*$;sFn;(QDC?s(eG^D^t1SWn@ z;otORHcBF0e#Zd@C)vTj zlL>_VTb^A0Wd@SFWKUB0>HM?kK%E!zPfDq(Z!>7g-Xf_G^H(oB zq*ORRQ<(M7lp)8|F!0~w&hPQRC-~p}9}-V!{!IoY*&pBH^)CMR2iXMJDJfzVUuLk9 z9q~KB`FH&9AJ`SJ#$W-L54*Z2GN{hC`^d+OcWda;FUE;#QbJB-)tV+H4c(x&&>RS7 zahy;aurf@2UqIb+cO~?{7=U}&9}jR3E~CBB{wq{iy)0{($fP!4WtjTTqx$I@zELhv z3r8m~rSD7ZE6&0c?RZ~Jr0C+1GAw;h`!x`xTeLn!d5+jeT;_c~8_{>`PS9;d!E~Fa zpkpSAC9amaI!0-8u$4%uh)yfO%DBc9L>yz#K|Z2to-JxCy&Bf+Cd{d$r6=)jx;s*g~LZMI_XVlhoSec)SAn8 zk~S1>=7fd&`jz>j<3hF#H=BX4D@N*G1y3!e5EEX=b!0T$pod1hFj6piQ{h41Dik21r+>w+`+b z;Ep{C_YEfk%EGjd{KN^#MuA=f9TZNm=zzqw`ATmgi!!1Q>cW>wI?g6>nk~1iIm}SswxD2Xg zuo?cY9AO}<{=%K8gA0V|;AR6ikl;#N#3IS>9&+TipopPfjNQwf9ZrJ60<;OXjDI1= z3)oI!pNsDXAs5~WfNcrx+1%UP{4=~BbkK8JNGf25Et?kFGskJs%~Zg?J)jxx>48gP zYWXOTp++8hK?!k#G9eKfU^G5PHIvFneq|Fu@503Kh6Qa8XokBVxPc$^97V&h@u*AU zcHX`Gd2^4)lC@G-E(sc)HmlHQBE4Gymf`A0tBaIrAqPbm{D49}R9A&!6umqEUL|sk zC~8SAKs(SfZ2cJ30&(~hu;4V<7^mrf93w~*3D)#X2HDRCu!c-GBshiXh7&-tAVo4k zhtd`6u=N*iBA{BzzLdQ32fgUYeG!|s;bt>P&kO8pT^?*0l1GrINX5or8tu;e15*P{ z2jOlwc*~E&VJsVeFiU(Qm_e&>vl*o4MRXxx3dGKuc}f;4$d7H!WwHh6qro&0=H~J? zZAe+@j!)STgcd|$CH@PbXR}F951@t!5>!&~B>S!@Ga;W=&O0%6a9W4f*JXnTZ~Nx& z6{T3afXj1;8KGQ(Ag#FPx>xB&tNJp7~Bw7SU8MCJ@v(ZqBSx}v~$m8;j z8#;$k=Ll7g?AxZndDz?d9gZ8+g(mnd4k^RZWwpRQW(qlSbm5gb)zl|x@uBtI!wY2N zF!8-`?euNm%P?@0MIa429qDSA4CVs+g2p>p&?4%|QLW2dCe@20vd0t?B>~!|5D~j^A_2}Rd8jI5%!0$8- z>3q!lCOTJ_WpXV9DZ|pw3BmFcvbdN@;!bxLRBBOQvO|-b%}Kjf*$Iix(hjr?TR#T~ zpFc)AUWkAM-YX;|z|@geaL~QYO)2!Y2j!}k5=9q*Q^qjf&_<};3#7~=-IJE?WDHY* zN0;7d7-jB_4`ySyJ}Yb=67y4y_tI{^lw|y_ez_oIL1Uo^pExX)W zrHPfk%ODlxFQM(j9ZTWwx>IaYVwPeuSaP#7-{sG3-_I~A$XbQjVIG^xd43?5dt$G4 zOALSG!`WB`sTy8ChDkQSXq2OItRIVnz475}tb#lWuMaMI{b~3ER-Z&g_*r*4yGFUQ z7=+d`Qq9HF!p+p-RsMTdSQ)0-E*I$Ne8cX#^5ZK|VmJL3sMI}N9xLVthFAG7UT4|@ z4krBgSXxa=C-_+o}bC4a&_3zzZ$ z$2oo|z|_kk*O>8e66U=^%8wW<6lGgGudA`TBd9W-F;h?Hr~gfSK3&oXUaZ6ny7|d$ z6z6Ifhw1Bu-zC&8M-<1SkrHcl5{i-c(xYKDE~KKV4bmdJ}t!S~6hh*Uba+K02T zva^n0F2=Y?4rYY>_*fU!W7R&Kja9iPN8>(qU3j$d<72(79;^1@Y^=&tY&53wq0@?E zjq1j#c{m%ZpxYaCD1X%9%VQ-Mse}jlZ|%d`Se3G7G)8hzfM?x55Hjoa`-4k%=Arhb z8#wXrhUazsTL8##D(LG0EaVHVLH+S{J+7m5&BNJPm2z$b&kH-f$d8Y8RX0}6!=VCAo=mJlC)R*O8%*RI2+3)R{Hwo$Lp!&fAT{gYqxq{wGU@wxqK&5#;ydk>HS*10~!)5OHc1XokDXtI{xnbNCN2OC2>u2UKSK z7k!`sNcQjTp=Q{-1Z=_{f>(kF@HR8^-)~JoNZE=-vl-M03-cFGa=`OmtkBf<743xhFLWsZ+s~myHc8?T>3Md z?5y!fBvBG;=umhXk82WZ9r^U5H9@3JKYVNHr+M=mW1T4m86(lR{@0 zA7&DQvDCKk8_`3o>%4QNm?1kTjnD?%=6x^2pdgFT30Xb-8b4=@jg(W@{-A%Q>x%S4 zJ2De~BqDcsJ;SFUuaMH$IRF;uzbV>h@D7U4oY})HgVWM=)STcx%bB29M(fT{%GkvO zTAA+WPG^@*QbKA4lP<+~R`ltUjAfK=_iBbmLDHgChv8w%g5lvr1m_IVBgM;}(=da1 zh%>Ynf|Oxdkha|)GY5&a2J49HlMyxCUxQ6s6d1R8FTTR*=4=}z3d2%ro{-`DS@uK3$RYH2r7L7gw%!rT7C>cqx~4+S2m(>Z zurB;DS-opGp>`TcjNBvA7s?{pFrpd$@0~|nTLPEi>#__rGKi2OZ%NPPG?SGzpIU*A zW&`8Sz2(Q9dn=D|9a!fc<(j0nM@$z6RK_vpx1vNwDP+m#j2EfcPjoK06+%<5h}7-h z%&_oX@*3Klw5-xH3Trk*ZYzd^15QlJ3C9x1^%D%I?K5q>fF`XF!A-RJqwXm#c*ABdI>iVrbddRM3Hi5#99};S`TRCYHU-~GHHZhA z67gTy3w|`fe_@acK%1^q=|nzg0aS*kZz1W1&K;tou#N9z$dn3c>Y~L=uoCE6)pmNw zUS)Wp>uCioDbdgiA7-F@KOA5` z2$LtZcP3Hj@z8@%{Sc6W=U2?smfZ_oSN9Qgw@8PUz-9RQZeThFbXql2r0rg^gfaJV zP9f6{v@*6akr2FshE>cGq8qcM|Cn%&LKy10l3uYNCD-FD3@F3V_d()Yf*8pJ9*uGP zuqc0=Jwy;i7Qj|$02$anNWQtjXA^MC8wf_3K?anIGwfvXCXzGpK)PNEqc@_QK?qp- zr5W=;%P@3no5t8=f=c|LMch@)%mFB%etY>6^XW)LMi$k`!c~fH`iPLb_wL(eUUrO0 zQR(6Oi@*Dxe#+y$c#l_G@X8c^?o7;$Y+Q;wL#!u60b5)0e22JLP6Xo|k7naMD@fiA z*TVLgyc-?s?ozk7s9&zZM>I(QD=*YQacXJbv;iwa{CN>^SJ9v(+}p+Vow9_XV(=8@ zkfNBm#|IK?#417>;9)W~Cj;^UQBVEm3xLS*a-QSHvNkNx zX~=9_|F*k__1#LE;Fv#8TmAu4l<1)OA0B$of8(OI0xZMTc@H**^)OYp*!UDNAZ=j_ zb{l-{p=MV_MI{aXko#%41x+{7I!!?>wRA9bV1wa5GJS^&9c3)UFBDufmHN4lYduhe184YJQmKg=|ch3NohNe8yk- zQ^8WA*2zrLm~xpn?hYoy&t(A->Z-oQU-?tOk4O7p)|GC(=zhqU@d4=Y;Tilce3txf{O@ec227!@V+RV6*BDT;;wyeR#cSy>_cZu@eEOHm4c zxe*s87Bz72T>xY_6=m|*8*x%oumP*Pfhgk@w zS(MyA-5JYCM^4;CMuqI%HehCGyD$%Xdh={!Vb7Mh3At}T`mEDkHfv>=pSAnGsL zK1AztrJN4ed^JkMt%CSuR#gJY+THsfzb$sM_TI__$+xzf4%9|G9EF8&G!T1zqw&z>Gv5#=hzIn zxLW0z$(r#JfxFEveLcg+&ysY8e`sF0_$0fWhV^A^M*)zmIpnAM+3nIg-use}Tunb-TEzY2ZbT;D!Wiwn9 z%#o7z3#jdf9diP`Y!VsyJy1R7R}JJw>%vN&|9Be*GwwVayLXAAVf5tC4-9cUT0t}7t1Y1*aQ%4Yrc zYj->`JYZ7sro4$gfk;vMfj<`|vcp&mT!ybpFVV0;w^W%;KP$ia-1*^vm5KO&+~IhQ z2DjH2(pQZl@9-P)>ftvbDy;Y1@*7%ZadPz#{?GsZfByTg%NGQre!%~%gO%aunqx@H z>0GeY8j>QI&I8(`D)HzqNPk8|Ov+OwbWYa~&90+gA0*PJ0fhM~|6*>+8gTa1ul5u` zm+{?jskAFad887oz$;vh1x7(nJyz5*onm^89z_?@1{LBOoMQ=ZNKoVL)=X51lx+i6 zhN){oeyk;=NoL5TT_I5M_HG;*_&prb36NvLhf{IH1U!hmuloxKw(5)o@VLyuToWb(Ov z5K6=(6#->DpD>Y#Xe+>SWSzr7uwJ_E#CYr9whuZFm-MRR5)+5y7S>Nd&qq#wVLP@2 zE=Sl^2dAN~c80uEmOT!f>*%WX%!>X}l7eJ{EC4G<)z1whU4bo`X-+=S9WUja&H%`4 z8~52HR-2qeCa3}w5@kHya$cZ0!hVoQ4rR)5%sD_7GjeyX<#t#sFOulPVWEb5$kJlo z$}s8f)C#a1S=W{%fmz52mbDB)p{JybssIRC^*56k_MHIC$hrvd9DCQEFrE-d1tuib z1sZ^XQ?__*Z@L5+-&A#|A0l$4K7hplf6%|b`}oJmDs98fr{G5%);ppU@IR6z;MLu> z3^BDh!5*BW$!){r+Dk4$6-ZkW1015IbA!)j5U<%QR;}5s-dKcpV>GviZph0y3~QEM zLbH-{5C^$Sp-A~wfaS>g*(a^T55JL1rMrgJy?ck>B!`7OVj5-XIa4lky=-}D*|$`w zB2VtnfH>-W9Dm{I^d;PGF1-PffJI3)Jk_)-L?V*LtBXU*DdBs^c5}IFaOvX=K+Jc7 z7~=w>ABK4=u*sMz`?zy7yS^Meuws79h@qAlDg;VFO( z(Z`|U(FQ4h90n|ZZiAOUX6Wa?gI2#TUHqT_{eKf98`B>wVV4uYl`KIMm%510iQ3%c zGmlNgl){Grx$w6kCA}qZkvMQkjOCWVqzsyuBQQ;NhH}_~bF|@+9I$H{ zf%7h<`jZP=U}ZZzG)LXkVx;w3tq)K4q=RO{$YpR9Y&;j}9CKGUB)+I~O*W|(o zc)oF+2bxBpK#%*98l&w*g5VlDy=c#5ywmoY5UyZ^IL;k zC3#o;EDei@993(RQCLLN!5}eU&`1_Ia^TtZoePR%%98mD)TjfQOg&6_ZtxjFVkQ^P z$0R#JQ;>{02#tsbWz;{v!YzlG1Z39$g}}BY@f*~E0`gVRDrh<{%MJM$dE>BXKr?6w5I|Tx6{v+ZZ4G9Q zw~G`P@<1=pNwch*1fZM-x|2i_MYP+3m!s^G1X^W~dI?t*Kh0iWb9?x`T(w9a*=Jk? z%SuGO)j;mEoPm$PJL4-|!Oy6_m*gR6uMT`xq3UY$pJ@_EyX|{93a;NWe9+xLoI%it z5IUNoyy1Z_B%HgrTr)0P`Eiqzd?^U{zysmcd~iRB1lrHZ;LHZOVesT}8=NoAJ$UTR zAcOaCzc`M$(4w7grZh`~NN~5{x>{ zPQ=ENfJSmm-S)j41=nT;)JZi8XgNF?LjX@7pxI<^29soPR=j!rZg1!4`0*nEPpi?P zO5?;RY~~V2-r@ZmB^Pso(s>0+P9Ch?HI777dtk33;xV{DW2+KQcL9(iH-oB3d&`QAmFavlEb4FU^%ibZigc%ICAd{ zthukeHbZQ@F0x(R?->Ol@?b6tUqohK7*LL+3+xD+5@LNBeRDu0^&jBI&IBWvplITS z^g~!2E=jA9yd$6t$(V%ZmQ`ZTrJv=mI>#J2g$1}B zd7s`U$|N#;SO^(>dYo;{g&p{L0c3qHC%WEqFlf4i8n zv;8-}^e}(A1j%9X^fjp`Ue(Efwma4i+bX#j7kUf)9J1n(Of7-SC$Q`;XY^Ua1e|K@ zYJ|huTMZ=+2)Razu^JF@czzPBae72?SbxFH!Md1x5>09cT8_Tcn|qL?wrE3oIXFo9 zPE29R0}Ly${fgnX9`7ZNWL^wPj-FG~I6%v)z8Al`+=$H2NoZ62Nn}45DULWLVE7=h zvswU^BkD@NU*=R?%0zzGKT!s|yyReSA}mM{-4@%gghDDnA`8yHO!Gm@(RHgpn7zc? zL6esFYAtnc|7M29vNQDoR{sba=>Y>9m%%AcQfbdo-26$aTyKNY%utCyz|+Ia^LU&^ zqTwVXJUhw&H7FAcz|L`Zjt_}O5C#{Phj;{pe%aZ3wadfd-#xr7|WeUkK$?VZWuElU&yv#6vl(&J$$tXN(~GRQAl$Tn%DnXy02_3 z@&xLyShNu5vLKk8-o8ns329-y6N8YS3pNN0PuWb2oWl=wT_S#qLCMi`=Rh&V6I<14 z(}+Z*o9rGt-$Sk)I5gt7Aeaon*scR8Sw7X|M1`Ic4T~m)?~j8RFcZR-A5tMAxFDDu zK|erwX;LAb9M^4=^~hl6(6!q>q32zmBg2$(XcLlKOznu`!hmul{g75)vJ~p{dvM21 zRlNaKBm-DFTC%i6C1l(ooXE6?Jj94*3!rjDT^)c7;`)Z(!=1gY-8X**R^dD^Xg?h* zfnb996uOyou8x?t0V_w<&mV18+QVI9gWjj0#FJnZ%Go^6W<$j!f-T%|eTA&$-R<42 zH{0*FM39Nkk*37e1v+tqom6xHn{x^B;VKVC*IjWwH3RKV z0PP^`x`Q$R&$0KtV)X*tFEixNfTV#H!1>^d^WoXY8GJo@{VjcRHgt=BtyZ#NI(euw_Z=gdWI_(mibfsvsWgVp;gJea&3c5jq8 zxZ)Vg-a7h+C}>zc=@>p8u;n>~1FBAE zLmV(@fsX3~C%B0;;$-agk3-`)J*Sw6|q3u`7W>5t>CD%)8>f-j|HQ1&~@LT+E z6!B~oXpX#VWf-Rp>m-6Io&gi9xFNk}rUmR>O@T_w-}ThJ=dW&{jy?n%LM$yEbj@oNe!YP zNfC1ie}kU9*xHfX76z0f>6%kW`zPPuTe78u(CIyD@gJ_M~ zH!@VAXkj3(4xkq=Tn`LJkAt@WDo51CEtFRD^e$tXFh=bIIZ)SJLhBN6B#H;*S~W`P zqtmkofjuG1_XfO_g=CtIFE6p;2o)S7SCa%PmG;yCG^OkGENm;|tvP__*t_b2Xrk&? z=s_F;)7PC>+dpj|?7LotSOuQrj;ESeem=<|ZUsI`+Y3PjoD!zN!DXweQhKv*yHIoV{Ybz-h%i8@=k@go;YeBk98-hv zgw(TVC}#QlKwNQzI!Mpzz@He2g$p|{^vs(`U6q7OXxj1VhGMFqv=h5LTFc&damnp~} zw`s)q4zK2j_~~#s)6Rb?3=U_ZS702O0zx_levfcAm^JZih0+u7| z_8b`W7h3b=vZEhMg=*XAhabWw z;yT%fzwr;}8x3&L-YOX|pP9?&05Rw=)P0d*q^>QQX87Ixaaako1EtSUR302=aY`+L z%Mo^o4CW?ju+m{H6t|7V;tJ<+;20GI((Q1H0;6GnNat*te$fiB99fsWC%hcqFO-TW z2@3K=SS4D_9FJxLt+@jK3L!e(Kv#>X#P%Z1Z@$fogaJC zkIBe)c{fMJ_sYvxaM=FL!XW+G#K{Qz4#tH#P+1>>W`hvZ;T|Eo&RgrlBQGrsC`Z!S zp2;WPJuh^n;%+_aqYwu)q6IHKH<+r#ZEtz$5xrUvwrl%d#@YxjN77lHBLo_yt&q!~ z=OCN`e|od?BU}?&+Y$3Y&LIh7X^s#AwGK3~@Ce?s)8)ad`v;{9m+4XGB4$;!2 z`5n-ci!tH$LGlUtI^o_qAI}H$vmD~`=k5Ii_O}l_3z?>dlj(9Ss$jQ8sCh64C&7H} zU^mTBD@umpFNG4Jmcix|@N++4zrX#zWCp}Olp}iuiv*kL&jYS99rmSSp*${EOvu>= ztPIr{VI}y0CW&2*Y9K3}Lqu8HX~Ad3_M>qFwgD?g)kP{9OWS6UQn2t~1SEv2`8o&a zGUw-=x6WW;?lc;htH2Xic^ooGSWIu5tlIvI!pTu|iSzT${sBF3&>TxUAe806r;rw@ z%>6<>sLLqAIQa9f(}qJ!(;jR-iE5K&(SA`5G*JXa@K$y9Rt%vNt%oOr(;lMGDE52= zM}$}=aOiXONHuo&W20T=M&1QX5|4`2WsAbeQFOuicJt-W+|SfF%nVBO3X&`c6H8qw zZ|K7L-VU@JUDsFNZf?JM`SaGxe?6T2%%$diu!uK$<^E$8IQ@@<{wHu`V`?Fd%KW~-43)I z-GWS4kLo44}eU1IM3@`}XbsHg0c?z$^hG!^fG_fy;TF7M{3xP09IdF#y^ z+!%wNSM__)?vb&RS~LDq-d_kvj-1OyWUal8i=@VmgyTwdvV_cY(Rz~wyX*ToN-kkz zE}*VoApuZ5M3&-+Pz{XRVISVLkaul8o1)-q2U?D<%UQD75t1&^g_gx{-l;Vq5+4aM z2s{|vr{%}hKA#Cod;A1mY>pa2m&H!?x3X(Mh@DY!- zLPm9m&fL4{ZdZxCppdnnG=6Ra zR*q^x+R1VbXIG43z}`Ke-XUVo{R5PQq>nici-fzw>p4P2NyjZ<2t_9a3qjEL3_JMf zHxCR?)yjZgJxWyoY=`{Dc18{?LvX_{ZzfOAXVO`UO$=)uYvm8_n*-GM@1Eid=emGKWrr?{_ zJriDW;THsxBj{T+S+2^XuyTo%qTT<>mG3S!tbDS2Q{u8LEQ*(~@LgN@(cml7#N;N{ z+T|~UNLRmGSp5>XjKr}C!>z@=%!#I2VB*D2k7{r^!d0iT92d7dLHtOc|K$vsr!JZ( z^UPOyd(lb7SoFNOmD+-rqr4V!u%~P$xcW5NV^~Nutz@q0P;T_p3mxI6wQj)ZSX)p) z%VlPgF?J^iIhqC8G&f~4;Z#9d_ z3jxWI^HrCW0#v!M?T2Atj)?Bx6y>1jLRHZ~f?`-qgIEwuj-c-rYy_5*gv$nn>#^3> zYR*umbtDydyhRPagefGw&lZJ~qv*$uvK50D$OrGUgDF1cI(~2zUIEcGO(MQ)Z4AiKECVdzj2iy zbz6g(e@$p~LR%rTyb$`QAM7a%EIjX(` zKoLh2C#&MfVlJtorpa~53(K)jAtM-FM=q80>3*C{5INJm%cKUPRiGL2(a{@vn^Nwv z?p%w|M#zw1M**@+M4#I@n*tt*lx_!Fj;`+tkVRR!So8_9%U+Rv%4t~REa6lMvno@I z7LD7zn1+j%$`SFl;pS6t+dLEsK(uWm_zTC4_Hb|?in54qGW5(2d-rkY{;{9$5%ZS7 z^$*dUF475oHj&HJCZxuDH1_ z^tUU$P#IaZ)PAWKrEG2X@5Fa~=moy!-obCv`TZ37~du_>iT)ZCCm#D5m zQ%Be8;pw&9f*kONaAYEsq({NEF4^DdrH~7N$PshSwH`r!l8aX4_bxDPAh~fwQH(bN zK%YanD|N%S1TII|IoC+T6TDC(uDHn#gODro0#uUm7g4d`%O`;&-?juUN7z|5a$v}) zKA`F}G1Unwp!)PAorJ5NO^wnbV%!$I9A&pYMD8l5q6xjR0RJvCfHdn?Ud^yh6R9X2 zBKI!_GsAn?dE=EPB#ADKlI!X47)D-PVQ7Q{^uQCZI@pItpJ|ICw~^k9zO0eZ?Lf=X zbvyy{t)3-KvQtnq;d$bL5>zY^N&$VIE8Oh#<>~Qbf`waHRCk zpu)kwW{)PjuoYlAvTm^&`3gBj>1Y46_|N6|$uY|(FUPaRfz?1*T3%Xu`gHA|mhiK- z`c(d1URjcVmsXxGKV4n_Cp@yY_H^ml(keb*UVgT^@=u+m8hEXKjI=29a_RgN63iPZ z&^tlhYpWyw{{q-=JNqo-dbPFxa&LS0VEa#7orCRzH(THRx8HVNjxVp(`}OeUqt2hV zHupNOY31yrrr--t{nu=1BgMFnp+NTe&H*CtT91c+VadW+Iz|gpG-6;?lL#+qBym3M z58%ECr8~QuFaLG(r!A!3_CNK`288r_dvE`sv-$qu=bgRIAGVnA|1X=bUa?=vA0G=g zcq-jIPjJW8IVz{%e0Z_E5~Iw8&sT9#miCL7KDoS_ems%KpRTVLASK^CU9EiK>C?)O zpFORE^L(lDh3CY4O~jg2bs*iJQYo-IAAd|^4F319B&O5vWE)s+I7 z_&|b={29rMKcPwbAo6FNto->rMUJ1Wtrwnu9&zNi8%1avaf$Km`qD-T+WK-_IzF&o zz-@iKFxL8dBp@Gtx>ADnbhSX4r>h0ro^BL?KPwLXY`HwsXDh|$ixYpoTEJ~%xq#aS zZejTCiA|wyiCih#dXEsg@s*ST`Nv>b$zY0(g?1U9(jr_`51KzfB*Y+xPvO{ zg3zjVCu6#zy4xq+KWWYB3v{4WX=@D@4&k6eS0mm^)qTrrthzs5olUz3V=~!Um-@lK zoQKd7F0XXK*30WJR@b^q>q|@aaCdL;dB|c{ zdzJ@D_w7#i)n@1CofmJnzx`i3@3!RGHwa^P4<<-rKJTIY{6**W`!{d2<#_1;u*XMd zS2!)Y2ZP?li_V+PcR#)7A@YYeZ~oWEyOlM_`#S85-LFQR%p7<{8E^Cs zg8xv@rcR|J$Py%b9%0*@5AX|IWJlHkmiK_wj!@943&-s0il=C&P0JV&VZMpwoQC`| zq-~=CCcJLgu29npmVbK26_oXr!tuDe;_g3&_n1S#R$9D@SsU_&e{qeNlrh~4mBeTZ zXdyv)VXny*)xFi&0WcdSnOZU;L&p$DAjPDIB~Ve0LvX&q3);!*iu+#7JuIFV`49LG z^^u>MhRtFNCLm+L{$M@=uNL&i)fM+V(AVenEhHMIa5BU-hVX|Vv4lC4h$hjGb~=H` zkkIcLT$CI?*2c~^*Mc&)y5jM|z&f~EM&t0v2G-%|r;%|xOAYfh>G#|NdD3WvTNa0V zJ!<+|()D)d%_~%S%E2vD}-Ew*M1#L6Y(|$6cTGJpGc|4*jglROZP)g+7rowO6 zi_XSlrG0Q&5KScj!`77%>ScSJ#j_eY45(OADb1S$H<;mp7SGVer)K`)m{mH=1GbiwMNrL0 zcAV_Sn%zfsPK66{P~Cp=7t%i~(AGnar08+yLPvm1K(zrHXCz+u(sASit{~=90hDVN zCQ!axsvcD3fu4e*^4dEu210Ho^2&1Mk(o~X64S=Xrt=SdbmxE!vqiQhcgT9B4ng#( z)X3o)Qm*EJj0TZ4bcF`NBMj#xOp3F5tt+lkawI)TKJ`;E?5cUtg3+G~soSGeuc)^ zxW3hEXvI)7y6$R?t(f=nW}2>{*MAK>;dQD_=;ZrZtduKU^nqTIA?@~>XB7X}pvpQ2 zuCGTeBJw5tYjwl-(3|({YK&C3dA6uTltsr~S-(+8S+A-_)gFjPn5)mDszv1EH|x;4 zYUoEpu_k=jv@Qv39A?HMaHLaFf6?i_4#zHg7<0*4lR*bLJGLWB0bZPWp?hdCLVvjc zbkzBw;r&1jjU{($P#G0@h|VaYj7kVF*jKf7)Qx;nxoSi2lV11p4a6TBWsLkmzBMxsYCcUJKABf&NgCR=6osoIc^WuYz?mEC)y#_}*7;RvspvxKP(;&PP;zC8P!kX;jtIHOL zjcPnw_tN?V|1lI*;>hO+s{}1{d9}_H0M!ecca+KXBu@sb_sr-af<6@}eVa&#ZZ3f6 z$y>38q=t0e1d6mt0J1@a;q+C4LwM9cGuj%Znu&|HbOH|U9upp%oOYNLy1tOC<0B?+ z=Z?T&An{w>X3H*(VfP}g$=GJnxS-Lab80g~7{zhn=|Csw4OWT0y1MKpZzx+XqzKh6 zQ+R*1R^d)}G45lB`3#_6<44q)5ZtDWtv6l$ zT}XgB-1tmKGr*-AW5ZO@ck@ygX30Go`_hclxQ&&qcEupvkaG8K=ctx>BDh#BeFM0; zpj9&?0!&bvI3~o!CA%E; zs&_yn8=`R=L|D&#UtTb3M41wH7|8D4io}w-3b2{LOo6OF|k(VjAC9tZ~`~SAt+5 z0F=~`&b4ry(^Sd5gI6J;UO*z=j9=mvC1@8Cb0z}35tZhq?2me z1c+pzLACA!7>&8^C{#l#Emcz~Pw)0dlP~q#AO#rfGJ+sR)|%u*&-Ff%A!_%z4ns8_ z@k1sZoi=>OMiND$ST!QZ0Fd_W)ZH zIZ^Q9(y`3!bnZrq_w85pD!328aE>j?dkeUTwOLC*s8WI%JYJrd6Fyr;NF5ZL&@Hp^ zH2k_Ak86I({CUt*4WtH&Y8JbUwNh;nP#DF?oqFtJaItm<3E(w|<_hvMniw5vcLDq~ z=46M+;>W>P?3*)m3;@8+;b9*64T?_8W?FvgtK;0{Hh=vDJx^+F)y=g(& zjHkssoaI$m^~N!2>T1^T4gQLY!NoE3vlG{eQ63CA`wBklKEy(ySh(b!i8OecxGSiO ztVYdEL@z|s5XEA!!Qpb!N(jM4YOyG{js%w9`S!io=Qvm(SnCb+bo|KaI=*YM5vkXDq?7JC zl=i~q{9r=idJ-C#*NcP{g+kyE6nFC#-p{~)SiPk1XEHzv2Id^-Lr&+%|4 z@jjPIR~wkF5X!{(z7efH$S5xHJZKTJ_C8&U>_DRg*rO*+Aq-_k9K zu}_O}%5)od{WrDzp%U* z=eVnWs9pT3jh&PsiO%fH*kuCG+qs7K^%f>yut{1yUp;dvDh%xXH)=P_OB?Bc=;kk<<*&Y971dG;ekzn<^?CunccXM|~7%enckX^P&6S4X= zinm+K>}*HdPP;`fu!a$w;joW7ESX)j!&k#tenQJ^ZtB5xGm|Cx^9c(-TP_{T$m=Sm zmm@FPMc1DZi=wWp&W!wsj9M~JliO*kF!6#3C_)QvGZUD5R%}SUhkBxKbeCo-Pb+2G zJOXQ@q@k`j?L(boI2+=Kj)XB7wPM`12Fa->2^MUwp-Y-+yi$_V*N2-&?mmlGb&K3h zalegjF$dbuqCqO$8MKjVanaCAtJFm;WxbS1xPOGeV

&7~Cr$G&GgUL>vHNWXrd;=bpZ0CY%BacyBA);aHY%&RHF zG4ccnn*#k=Ji#mkfQ~4*a;i7Nl1&jGmR?G*2i(g}Y0gZ#$*?h!?gPMgTtSN@YAhqv zN`?rhdaYvgS>PneXbs7v4s@f^ElK1gD$MLoR;SD}Tim2;C6@JZasle3te^A8;i)c9 zQd9N>(KY+@nHy{J83G2#SZ{#F;3A7ZQS24OL0D`whT?+iDr+P}!-8nAQDB65z}Hm- z#O;)h(46wAd@N|A>N%jz4KLo8V41=Bc|)RX3aCD@S0o9Sr#WACdIce7?5!kTUki)(ChD59nyxBvAxRP}o`Eoc;zb{RL;NVhW7%UZJPYwz z7(CMcz^n+ z0iCOJT*RaMa~0izD-nttNFH{-L@j%yK;coX0IH!E7T{U9aV}W(Q8MFVxccFG#e^D9 z$^^YNmQGhKf@c+7pqvoBb>@J2(VJS)PwbsO?$3JXcHLzC6#Y$#$O?3dfvV~C#qk)0 z`iMlMyd+#tJ`eO~mH8b_(7lGQ3_j##FIOKoqP*JDaxHQWbO0z#HYIWM7*PzUncsbv zSykcbmHJ#@&#A0KbuFeyhN80&>#mH2hB4RT)dC5_$}L*;L;0DZuZ%_#3afwKwR1lI z*Q<-nbMM%!Rk8?`2Grw8(OaFq!0b0#@Xy@F`M;=Q+S5v`Y+E8WD6v3#1GIOUjGzkSlas;cC%g!&YR?uk^l)rd z4ihg3Llf{@1$B$?5p%3L&eBwK7Y%ArAVubh6r~1cqK1&g-%0~LtxvUbFm>uc3Don| z%3V!{;Qz=^lKz6A43c0n4lFF=>T`C=Xq1OGdIxbi-U3L?atVNX0sE));!t%e*qG}v&F$#L0}c<# zhIvqKprk{472?d}=-mzU!LhZkT3&puut?%BsKpH^%`*)gzRoHcL&Trrk5?wr9LpeZU9J8M zB;r_=GLd%?eITF@cETNBouX+3GPdX(xyGU)9}I463@2z%Ae9$TGQdC=*k2Vw&EwEX zo-(DH_}@d~7Oy0{?A$-EgN>$JmB)}>Z$0>cdO8UAbNmNULMi9MCpCzojn@hu3usqY zbn);4V>M4FcJbr?kez0BaAEl1Tzvd6I=*JzKYiQSqLtOEm1Kzxa1=Zg zpNab6;9EjsC5$6@-~JBJuzVpN=OM?&nmYv{N;&y9DS}>C;jnb*?Gj}p)d&s$1?VEB z14UB{6+Spz29pm4UH-8e1IRDA;aX0K*W2%2eb~fx(=Y!yx4M!A^)Zki1^1+m&YR2N1&BJ_Qr3B~}l_STmfeZaDH=;RGCdL!mg*T#3 zMMo~G18D(6Z3XwwF<#72{VP+m^}V@<^?;@*-@zN9uAGWyBvqJK+G#;_%KWgl5ciPv z&^4x6vl_yjetdFzF}pe+!{@^CAJ29P8fKMlXfKXfH8hZx7}YL59*ekjVg|Q_boi+v zC=f{CRJ)Q0C*Z@oxzVBWMo=pomE<8P+QS%Aig`YX@#*81PZhVAdiqe~*bOpNip*+9z%{4?k&2aEHsjSZVHX7zs2#W)x zvjqU)6{wnGfLnpRjQ?!E;+k_U3RRh$8OHzpOU@byC`u+h}sm`t{ zK&aH7OVA$DF`nCZ37qw6U!y$1dc+SW<31XvjIhPj$pRJUs;{m3Sz>fQ69ozIXVu|l zc_O&WL{m%tz&40O9NkC4dDGbs%WOLM?izjJs-4P_mYuDg*Ua%odu!hC9=w2Fwnmp) znI!}CRdfXo9B?DVqrd#62~g#pO_z;|akYBehF-*P|O-FjRpqk$YaKFsrNNe=DZ#DP@l7T8vk!ecBbUk$_m*$v47ATmFi3D}zmEKv72A02waS$_$Z$*cqYp;C2FL zZLL~S&cQM=UPsckwU}#}zFClVG}>VQRXO6r-mQaEKW=r&B&$*nzd{WuK`D$&%f4?Bu8OC00}0wV;D>O<2J@z`*Z;j<0ealgQ%Js?4uY zsKaA1*eV@|@K>F2X!s53Lea>|J9fc+x$|~+e|PI;MoQd9H8UltCTJ<8Td^@KbqH)X z4HQC9pX6+jz=T(~((LPN+2d{FV4`JU{;{mJ?1ODmHNxA=^<61qbD^NnlqnX0+!T_> zrNt9#+-FzDRC2!qtZzpGy%d?tj9++AFQ8{PaMfa2-ABp1+1judE=B9@ATDL;VG(u4 zJV7iV%%17CTO>I8aMr*4$JNQ@BhHyl`>uJ zfLIZeD+AKK4htqKDM$c=n^@A9(2lb6WOi}+7&oj95R>RAC4N&6#ls+c&1;-PvpmnU zu1wboxYUI}`}g673bvyrmenD$ydG~n+g5uFPFaR>YjMX8tmIU9Mc+@+|N6z@47Sv- zKfQYowHkf}Mc^-;U&AlRa}XcuP0wjEWmk5jy@Mr89IAm1z{rim(y-GPxg8f@LukgB zVxOYiP`%+DS5gmWT@)3(V*Y2h4;iLSR`}Nr%i%6(A9Titv%}d#EC)TKWIAS(R^%o{ zv=EW2IP@_b=t}V6BFUzyRrd|l4i5kWgb%-ATM2d_MSp79snV<H_TVU83>^nHy6U5T-0oTT^&oaR5+I^t#Y1v=+q0(+YD`p8JfVhi|xKu zQ_MxByaGH|mRJ^(lbW8M5Lwiw>=Hk~>@}rUOV;an(DFv#@Ji3r1uo45Nmrj%_v~o~ z%JaAxXnhh00vI@mk-9fRLK~{PHL;DTRt9+^qSXz24AGcaLMa|e0N++K*ymYtY;nDV zfSYT*pI0+aT<_aKi>J4}_rbA{7?fN?5N9sSt`lCaV@cQ;mC}k^2nsxC$CL^tXi?_! zl*dxl0$WFkR?U7COy!bRcr}7Y@DF*4N?70Z8iO);aed|uVrPA&y7&COTtI}NYef^l zfYDPl$*7tgM3y+qXcv?zW6h$MaU_@!arZ!Q?$o^kQBgxmCUl))RT4tp01Uf2j1SjS zt+&LmU9BEEeG`|PNU~w=j8~sM51q1~;l?0?{H)rt~ln=JRU*m+*;Z zsom%$GDsUSMbvYEa+f7KxnJU7-~|r0q~RE}4$9S;JocL0VUwR&ldI7O>-X@1Pg{DncCjB6At+=o-eHBd?`MlgKYIRvpH=27f#|McP2>o@G)KZR$3 zzF_!N=qsn{aB)2yoS)W>T;0A$5VsN3Q*NW?{_&9cHs!HfeF{k$Y-e~u6^6*Ui7&0b z^rBpz993?W6#Ucbw!W(3X%gYX`zM?<`lF%yh!SKbV}cNwG)-YI^8_`{5Qjc<0nR^! zM?}SOykYXo#SFY;*828LaiMY+;|gz+HY-VG9Rj2uitxcX5J-y+u(7i0Wk)jNMs;yO zV0_OLC%1rGA&sy=G*P%1xr`{xW}~`{0h2iTK|F=GfrbE`CzM}~FG+RyScJxiN3sSE z&N5kMUyzXQR3=%O&r_sVSCJ`eYn%-O%+HXilC1fZt{tv(BTV?|QkcRAHz7?Q!+1gu z{$TWZI2n&5=dqfF^r9&+P>ennFB8P|3Tro9CYak=Up49su+{ld_I*^yL#p5X^DE@2 zLi9qu_^%%De^e$_GESv&a`QO#5RqP4B{jc#x``>3_BYd&Bg(hLo&{wU=Xy3)phO(0 z0srbA+)fglg*4Y}7CGeGuE27&Sv~i74KqPna3gh!Q)y*Ep53q@#UXR*m1h&`Tq&y8 zTuC^R+o2w4E+|Aq&;!Mn;SCz%-Pz*FWjeGbzcmixmOq4>41-N23ayx^7y6l8+4jSq zHs8G8Vp^RSW5Bh0c{R&wZVIz-VYdT(CSQir0dH+LxX>Fyr%j4`znmFC&_ENO&pBsUv14&iQABn6-k`$$sTdwOeLAcY)`2)yGy z2J(Zz_S_4jXd}5|UL5qhJ?X|FBf!L+jBz`;u?~;Cus|}3^ydq=tM|;MMfFcssJ3w# z`8jq-19WDH@V;^2es1_jJ*>Vb5#huFgdgcN?(vQ;SeD4b8ey^NsOjwCw3ZvA{9p!i z^Yeoc*s)L>S02^9(7=)7(X`gFUl-7p zzIAFEfn)#U$#;@!KIv=EH1FZbL|GPpU_QK%4yhMG9K2{8%GnAL-;>UR!*31`Uv|Ip zKa<06Sf$j3L_9(D!*C`Ja} zx)+^rxuA4@z<;EpE!G$p4nE+#IfnizyMTY5T&WL{?8^M-CPKs_^e{l-U-OP|$I6`8 zEFcUg^;sY{`t^a8rj6VlixXvDg)#IGfzb`J6d4|b*@e@j7k=;0&c8nHd>-5jp{Ez?pA{g zkPJ5QC7*$*Zh-9@7qBmzVPgj+V0lWQTf}%m;YX7SXVh_KOQk}h)T^vK*ko{J8&zvd z8hO$;C(uS4DzG;MnnN`COini{2smgROc z8c?8At_V*-bt?WZN_vJ4)gnyGfntKwrDuJlKmw9p+-rW zc3(qh)bdX=;EMg!$Un)(Ef0jhp`qPoKgBBobs6?Ekb*oJDku&-SFr7E*+o-O0fE&( zXSg}2<$GAioc@0>W{f;%gYkn(k#;LWqH~40DzDJE;9LBzaP? zYB~<-Jr0YgeagjL1*4?Eur~AqH_6b|m@WDe&fha#*x=!eX&spTtL;5g#$CSMlRH5{ zu^X_Bea~Tb^w2n}3fRk6yPF3;n*pSX=M)KjFuElFzu8ty^8HDHh&cUuJ*e4GkaYr^ z=U`aW53)OUe2fb#rnq9!w8F6*kmtyBz~CD)lUT;xgZmIUB%OyZ9#N&$Xk2j+@)t3b zF3r8B6MoLswkD4|!|w*)b&kG!pdtX%gXBJgnyIb}@Hg6feC#}Y@~BB3tj01n z3^VH3G5}4+5UEuu_##>DYcZfy!^QVaREu?kx-ZO_JL;cM=ckXCIRq#W9n2n+K#ZhZ z3#G(wAQo8QyT)-me#RvYs6$|cm!)b#@|LdP8NqPVuO7{ZI7@oKVDDKLE${%IxQ2pnlw|+w>pkGmKIPuqyF!fpLd#p75-_e zxBYhC1U#^Da1RBnWot(x4>gj|)hb{QT|ftFRw-9wiPkRDA7#dYWv%maoH%Ip3!5jC zEKV@wqJ2U5pKmvAi+JHdHB}!A`!f%cw=5T@U7}4B6=KyGV?$`*4&;;)C76xkHM(Km zjXMLBY4&G|L&ztPw(Zzy?AH#mY)Y?BxUz8m_t`fHTSDDfH_#uK_L#8P6R#JKw=3Ax z(-0)LWRz0XzCVD>E*4fxCU1P0dQfS=kbH*SMy zupV&BV<@E+aL>7pM!vdate8Mbc0@~fOac6`K!JM5))rD@C$(R96WB-gW!a7oF7M;*{>5W`Gi zXHyDl|0NN`P1`Q%WcN!VGAJ}FB*tU9;`~CBXepv4IvKbTb!SWRc;vz$eEe=?=mAnl zp*Bd^C_GNgncO&vvn}zFwD9KHJ3GB+?4)z_Ewe;ie?98rqP(jK^n~%Lo?#+hBeREx zF$f*DZAsuCmT7qmeMs$wuSoY;KRL<^LT+m54G zU0Ojyi5I%KGbzyKd$Xp*KdqD4A(W4L_lM9jGuk4Cw@i2KF})mlva(K(dVJjZj>U5X#me6f#mE z5}@&AKjru`^au$eomTV_NtBPZ=;Pp9qr(|nF_1Z$hKeo=zJwFCkD`PjDu&D=Ykb!g zF20Mi6gR&O|4v`jIh)BezUnf9uYNw9K`BP>xH(>QHsg!<(M6>bsBt{s%X|&G5e{j{ zf|x3(*&&ctzj9YGQUvwg zacOc4ti{HFVsLU2T{z2S`!*sO@AQKjxsad{UD#wu6V0Fc8gGpx<}K&8UWpuTaWNa& z%uPzX1GaZ#TGN+CI>f|ETDK6u^g!{huIVSYel-v#{nS7vaYo9au9*%r&KuEpma$Fd z8nE?R<#Epw7*-6Ow*(FRVdAUA=3yklx^WN>1gOPvjJ9-8J1`AW?BsjB&Xp-n(Tqbh zK)%FauVMQQzV=v$+~odbM_d!mMk(^m5fjZ>_l5RV)F$qUC7viRe5l~yZ=8t>JZxoN zw~D#T<;IFFi6Y|x>mB5KT|-5>z_F%g6-jw=4GIqXjbpf6JReKlkRFCmDee5afb$~g z0hlSDlJ1E?OnNF(<0!7uO+UhF#`$#oSDJ7h8a8VeU+Af+hAeOWBMaJCO(R4%6i(RB zL%m*t$YLG zaFmFZEsYWo`v*Fw3?;$&{`hQ!=4TLs@V|ghdOPAR#qI;Au2)Q9)Z-^l6-^oq8x}WA`n`VUXLc|H4fp&r_TXAhNgu) zW#kt!wa*8z0eM-If`z=qOo`AeOQTOLMAWqqUcoc3hY>_^fY2Td0!S`o!4966ulx)R z>nuymU4r1A)2m3IXwYKD5E#uY=369;pcUBI4D7l9GsTy zeV|9CIrRw=(nRjB1&jL`-e^CsM+Y7JYtU>0@qBsQf_Cb-UImV`h0&oK=i}B*=uVfc zx(2H)8ePJm*Li>j=)xFOB9FxGh1|=k+LC?>uge<+n4hQA^r|VYaGZoC|;Ds z7tNWYJ`PmGH!`?Q6be8O0YNksz$GclkQlXb5Z7`8&o(_By@KHDD9%!OxV5(@2?6|8 zgLF%gg-t(^lelpl-)e#tj|OaQErARh4Ozx0s^Do+AujNEBYZ#n3gUvRV*hz!)z%$)=7H{|(x zh6?&d3Psl~n2GjI*dPu@b*Q9W4~WJN6dLyD@j)yaC*d+qP}RK|`6UpGBOi6o5#`2r zBi(G^gcD}_$S6&2t@RZbaJ+6ASr`BdN=u;w1Tv?F{W*n&h~SneHW81bF8a->5Nw=> zFETKt9jgXapjymxW)etG)1;EJNQ`%Y{dm;vHAsh85%?CGX#)Ag8jr70T7eUdUY+X-OC3$}K~jSf^HL*|NP2}(+&$->55 zxAmBCrGqq19tEeiSQ3)&bO#+N8USlD*pINAAV`wKQ-MXmVu00NSzahs=k?32SK9|B z+xROIpPR@XJ9cPVw(OtJ!)7d9E5bXdv{8BqKQJmlUEkxBL=|h)49{f*;f)L)wCyC{ z01_3P)11b&9`nVFd=rBOXBZp+YSN;R5?vs|eiD2iLgbN=z{m(~z1x4$%(UnV}(?@y}nRAr?BRs6Yr@)qJ$Yz9w;#LD`ghfJ6)> z&80d!Z(jZIZtEBBRov6V2+s{GOg)F90|4aYhX*n}oS(SbSY#92 zv83J+?ncUcC%Vw({ioDg|(RDx?bNXXa39Va6Fn|58iUn`EFCmv&{ zkT%L3auza!VI2IKrGc=5W+ zlqQ7GgvmxZ`rQLPBkxXt#({k1ymH1)twsVwADP5H=qFR_izF|^VuI|5TNg$G^b}mI z0}|X|AV(J&@9DabdtQ_f94FSr1Ldgt?IN{b3{aa06-+$dM1Ytumf^0`BKtzb>g@np zDFEnEU|1}o$#uRSGsuEz&+0tg*s90jh{B$MaW7S5amtdoL8f+hccWV&ddY4ch;*zN zh^sbNy5D*%Br=t?i!g>d-jY?3Jzu0PCTr(&;GV`6a@7hKMq$_EcDNI9l?UToygIxn ze26HVFr&K{)ZhyYa^tp(4R8P7_RhV#%H!D6^HH`v#Ne2nqb&#$AbhU1jk9!WYOr|4Vr_ON z!kQYXJ31N^x*_r;Vb%~)oa^cPoc^ zAn>^@2)dhjBb)eao67-(w0CT{XPMYx#V*v7uyL~cEtOTxEQz2bDUGx%frK6?Uj9b6G>LDVNqc(?` z@F~mQ?Vd#V))R6Jyd1`_q)zO;mChC&z?2`#6t&Ivjt7ni%&K77qocyi%9`?9gG@QP zAS;}0-ZG+TqB=z=n~se-bLbiMBA2bHMtV3qwLyYACH<$rWq27{5+|3a^OZamPaiy3 zU)zY&eFzBFK^p?4o`ug>q(htI_Mp2W*UAnjMO^7 zt#rN28Rysh9@aXG;vFg7LvVKE-G?Wz^9Hs&OjuN`)`0Zm7$Nk01qn2K$Kq9|;Odwq z2TY$!km}ZS|1?fS2V=!TqAuOJB_VNK#@FhqOaDi@Wj+nIVbr=xG>Y zap_By-w{INXVRgY<`qY>UF__golDyJC1ww^DLZMQHeY%8Xnn(cdCDIel+q;-yxpv* zwkkHpvz@p;NT}~!XX#v7JMW5uTNQ)E4^IO?@H-MYU(H|B19pZ)?J%v&i#^Zw8dIeW z2V+w*tBcQ?*M8sDpU4OmS~W$E&6^R{1h%~zqzejD7O~0c1Uo80g*StWH>_Ow0W8uT zm#imPV?UIEhJCx_9N3+aRC{mkF4H?u!&$=Oym}9xG%72%8&AS8-V`YJElHii3wiiT zA?Ry2ted52c!nE`OJk|MV@Tf7(ZTkv3U4b=nZk)$Wb(@J9tu(*sNeS!o}Y3H42UaW zUBL{!qC_NvTN@L849?w(iOZmTS7b; zZ;v@l^_PR0!LTUsS1P9I5M^0Sl|u6cJ^ltIG(U4> zvP>S`cijq-0s7S%V6eCTOnfpkIvak_l6ccy$6mjQP^cn<>hMHrhwR)=QQh$Bss+}h zCFklk?B4tdSND)!I{2dE~loVQ_~5afJuW9;;#vx3WzeNAuOYfb98=3O^8#?D%YlOW7Ur)6Xj! zFOeC%6o~A45RB0o3`dQ{;SP6&{4@w-QvLO6jgnrn0oQuhYLme!-OEgbXHf4oUByGuQs8I5JEWM519AW z^`74fZF5)%J`ZK5mDIf&Hr1Ngp0rP4Togs%hhBK(;h>}|*VtO+ zk>c61x)o6(8D8!Fyz_GUVfQ5wfB9Z$i{DD{@OW82P@@u<^5H8A93%}7PF`1qE4NmI z4qoo6{tUchzc1-bYG$sQDv4`VJ4+jpvWecUT)xJ)q8h6@O(wL8RwcE1mwI!znJ8j) z%P;drO8OhJspflAP`SPH(mG|vhsqlo*J-!q^alN%NW@0)kAg$dyR`j;Q?DK-*5>i< z%dftIkY7%x6d1M2S|u)t#D#9Qxki==%~&p?_>1fA!Ta!KLYR_vLVD!hXY* z`SxN9hql2yq3e^cR7>R(2nbf3@F3ssosytnI$&j@3%FVn(`s$PE((rWj zX7^Rupk*ap+AQ}q%ke+0N&y|S`Jgp;baAGY%qZPF{+iEz_O)SJFN)?^5beIbF1{{T z84&vyTA&|*ev9Sj29*4_;phJH^m+NY0ipgf{M>?%g>t)j{Dtka6X&9R4ruWg1K2;f z0N{WQ#q1~l!+8GW5B8t(gacaB0rB^_mC8%%?5+BIrekui*C)T_fB(k+e)Dx@Kdq$S z9SY~qr~L1aMpn>O2`+qAV3rU4jsN`uDWT4woh)EzE13|vZmnuMk3@(_B~lTd%M?2~ zajzy*tR?^fAVsTxrrc$a4Pq1GHL>If|tJ`f8jJJ&+nJKP>fGn%Hb~EnRLquxdak=-r)&7#=Wrh zcjYI7fi*kQ!XQ%GItEOuC106<1*GG>6lQl^1M=@n@7PL4CNAXL(k%4m+rl1uN-2cJ zk&JGM9fa+Qn!5jTPP2C_&9aO(`<;23duJas_6PS{I&_7F^lt-mdeY52fTmfgYtc>k zC0V~Xe(&$xpH2SOQU^+a!8QP>&mB>B3V`0ee(b0ql9;_QvLfLF(VbXQA-x6lXIbagTlIem@4m8LO zom_`w_b|Iew6nrJ8FDiqX0(X0Y*E7=he zRG#qndjoQeE0bApf9>%jGw8KEDjv1b5DGRT0|32S#Q-5^Mn?@IGAr2}5}1j&@m)2a z`m^UuKi<%NHBYJNRIbPQuj$*cl1&r<+0rfOyu)A{iqDaX& zNXKNT$>Ewqjr{ij@czN7z=I5^l7%S1>fPth@BS5SSLU&<7pJ09+uKg4ugjfC<*&#l zbB#HpHtk73tROkq6S?gWo%xwhfxR8PP@_@1dHt$Er{tqDPgb&#WJi{B5whYLd7xuV zp4@wQ_qm>UE5CFUc82dMl>Rs6$%4lOMIMb@wRUwIdWjKuYj43zY*F5YTw~>xqi`ih zsd!2mmj!yHRLGsM{pJ8)Lb=m;y4-3)L7Q!=N1@6Xn8FmMhVs;uxPp zZd|K`8H$UZ6RCmwj9L-lxOWzk)tljZ6%u>;{YH}tja`aRHonu3J6|)Jqm^k1Gc<8v zrn(1Et=Fn{EF8rVAt#}t9kREE6n#W(03OTf!K*2YNz#^(L$wlQm5DPOTJ)_Xe@8As zFk=@czF|*&g4k&x&ZmQL%XYRa8A#IcIyH+lrY9vm{66U6o@aVwZzp})3KAl~&=BOo z$VfPnW2jd&REWtzEu3pq_R!XC@fo`#*i2LOO;)$OrSd45r>tCcnB?R;y!JsgJv(0P zu_w}~E2A7eN=}uZQyzzUjKoStJq*f=$>fQ`Y1UWT9Ostl=^X}k-{DtQ9JLMuu4G`t z)?`$GRgerm9xv{l^fBE^bMOsVnWL{pQQWoxVmbl2OcsVQ(lh(&_0E28I(|(P+?dnw zy3BE3$>4>p`erhD-jY|HVaKfNSG`I?nwx&-K5%-AE4XsW94NVG!{7|6 zcf~5JB=sT&1yFX;C6B!oFIbTDuaTc>e2J-@;HpH%TfqQy+H4d%Yx_g1UN29RtvIy4 zX2tw3qApU14iAvOVjJFUrFv1>X~P!T7vkZjZ4*bdeo*neZMv73{n`lehcMA~p6n|srLfa+ofxy`~kI{rxFmuWSvxvV{XP=U!v$`A^+* z1`vY}mHR%I3K(Z%E&&4@RPeT3=nVhShiQCkwQ%Ew-jxf5?QS1x|F?g@;Efm5W9a+X z(Y-^XmM?C~k^d-;TlMH$$#R78Le|~j)Iui(-c~d8GF*s|()K$Tz5R*&An|md8Bzsi~s^lfwL; z=grwsU+mz3-(?HnRVlPetidP{Qk!8|!aDagb};r|57;PX{&JVG1o+m&e>+=Ry79YZ zxl`PYTPD=5E}bipMzE}q!$nA2v)uehiS7%L*7g%ttpfQ2O0HaFt4rsKH9WJ{V%`>x zC-GCYqYOdy-RQqR?GC;(O-fV#{y{BjH3#|(R-OEus?XrmKbM;g+0ckvlleA!H(5*2 zQYo=r2WF)Q!M#NVIbh0=A(Ib3T~o^K?kY23H9LCroi~FmGEJo$G)wu)+LJ%yr}qkj z!F+grZR$mNvY_h0v+bRXE&j$SO>IZ#>CR;JmL3#{3=T?zquLp`$^hsV@8~Cc&4 z@MEcFgRh(qg2fYG4$pPz+*+NDsGGVxx1-&QC)bM(;0E;0HnSXrIwCEN{nQsRqIY5? zlMVR|yyZ@qIA+)OL>SN4%elIBnfq!+%7hS2se7ih-0mbbpPBgo*ml;b%8h49ku3{9 z^ku_H6h6Q-li|ACXbhoQjtiiKoG~choKb39QvbwkE%{mI`${URNHR-qY|VQXJb^Tn z$8qF3C~7hdj<`nZu21$zlNI%wMhX=vPNV{#vGqAjpq?P zPuFs{B4c$AQr?s-``vxS4e=mLcXYi!A6ki!F%3S1yuHEgXUG%Tm)%rJnq$O=e49X3 zrk0@BIL|1gqr#AJfgVSzS;V3bY8Wb!F25{yK%6_?$DfE(n69xCWrc-o_}#b29348{ z(DfYE!5Ux;WPPvJia}xJC1wGOonj+Tp-a5K_RaU-{`1#(BUr7s?*D2Os+tZsDjozM zC*o|ehy7ovOY26Ng1?$!GhaasPv(1sQhU098JFtsnB7oyMx)2(4{x|DFC#dvcs4J^ zp|x7w45Lolk|e*ifpM14-duI)X-cD-@0Fl}`pG09TUY^AW9GwnmlBvfi;pD7gUOZI z^~sgx>$KRIT+vIg=xYTeV`Ah2`0iS`R89$htlgj0Hs5L|%2ngWAIQnv%fEZ3ya~Fo zbF9OVgSs;Z_WvzfM9DL=O}8#{Yx)y?INWYB*McQ%ld}dFNSW2wwQX!oU(taCUQsIf zS%~wA#rvM6IsBl;C;L16KiZEi-L_;Y1ts3%%B@6HH|p?I7e}{vT2)^+62OeGVhNd0 zUhF}vP*tUak5qs%e9|}0zSq?eyTgIIL{lo;!ySK4^bRx^jWAoXmJGCH@V`|RDDp5r zIX*xg^dw1CdAeuSPC7nU_e4x2_NS zDGqlqZ?xBrxASrw+6&^8+|$2B^fY%bj=^kmA28C?;=_E% zUuhW`Ud^^VS<-X&boM{hs=ctf)l}%<4o`XF=rm=TS}H+XPf8kKdh#|yyeOxTT9}+6<52#3GKcHIVz1zrD{3@agC9;(FbL* zO=Ojm1iZi8YTU21q2;SYNcxE# z@_yA)U^PQ91ML~AJVW!+z1k1Qxle5#;H z2`VPhGtKJxm~(vmk3Iy(%LYQprv1co~6mPWeq^=^ zj1k7om6j>X>?TzoP*T-MEB`8WemWLyeSj#3-Yk z)K_r<2TEUyGQ4q)bPXzMvc{|hfq5e z*ue*WWg&4ry7HxEMmBTNcw{pgx%kko<)mCu)=b2!2Ewf$d!Ixu3yJ>BFOceLrH0ju+Rgtva~8p>(Zj zK|khyH=ORS4-pY<#f6zOlaO5&l~-7W}$9 zeSPW(f8M2pj2IvxD%_a0fE{O<_l5t|SF5fylgWS0ZaqfsfR=ylW<$w+3c0A%tQkDz zlN@JRPitCh(z1+2d9>AaTEve^m$vK?Jr(_ zq!Qw;oH5sioxO%J(@&K6jCU!~xJHD6)rPhT&{}S08>d+ zz4^KBZ1eN(LG#{L`i)eWYBxEIvAeG)?^ND^S5#hVj!OE?*8kNs9C^j*8Ejq@so)a6 zTmR>3NzvIg-IGqVCG?#W8gp39jU`0MKk9Q?tsaYq2wt5-?yxT-m{03a(wB1L+`F~3-Bq$`r$7u;E?PWRo(6;WH_e0i%;%8w!s0svPVX; zdTDc_c4&?kXtwDkboy=0o=o=EfWrF45f8V~o8!n$Ezr43O)cPy&(*Pa8N}A1dB*+w&d8QzrqmxLE_LVvWLQ{a~L+y3-j!|RTHap-c~7>El7ZE-<60JqaZ zEp`G6Qz4w7v>wC##|{-jump`aB@CQV$DXn67Sa#BcB^(n1foEg?`!%p&y#|Yl zd{c|X?GJwft=fJ6VTatmZ_q7q@~wHfDs5=Cl#u|odBVT~n`i^5Y_VGJHTYb=h4+^D zqhpTlpuJCzjyjjHCu$)&V^vkn4;u|uXRbSY8y`B+b@pt!CPt$7ZYBf8=EFl6!u(Yb zr*?__zCKd0x>lL7C5WZ=!}fxIbUYArYI&F=JT#sRF(QoH;jMsGI3dfp#d6CXremG> z{lFLKp6Iq+MZ35Jyj*)Hbc+Gr?wp1^QW$qN#oL=O)^I}8=w!x+pkr}469as0FE8(0 z7P=)L>d^HA&g{+&yqTX43N-fCO(nco3grdnLgH38!x z?*I8A@md*3w@|%+(<$4Td4>HH|kdG?Y#B3?^8)d&v*J+Dr)!ro9 z91&aAoH54?N)4@jYCHrJu(ciz){^h@SFM$Kini9AhHEg4p5ttLfud3JXm*AZs_g$V zTS{N5t+u^+tV@44|9SV_$vdRtf0*TuHsX;H2*j-4stS-rLr&SEw5dFA(de^EOLpAV z$l#sV3%bU!bl3#8^sDoi7GI97cKc(oQZ$})INdvE@z}KWDYF1L#D!f}Pxr@bxwijb)Iym z-tgGim7{?TI>46D={ydt)%cT3tgVxM?_vhS;uewhh{_sJkUSQfw%*y4IH>bY%N>iK zw@48Dw58H$!l!-5$u6jQX2*7OMXUMj7>M_-X)4xP+zIDBv$8&2JQc1B8~Tj!;l%sW zUs$kZ8zRpB>>0D-(2y(&;?3!ckH__M&)nQ-@r%N>^Yix3dkv7sjS9ZPY{{2^pY{Fd z7xj7K$t4t#*zaeg7PCcH4Cy8`SQ34RRCt0Jm>=s6NfY$@HqJ!_X~=57Ibv00?l+?imy^r34c(QPC1JGynglViGR)mY4|TM*N| zGI5X76YR6vztGg=u`{^=8Jcsjoe=uMI}BwqJwGv2m`^#^@z(N(k9B?HWiZ z7^gHl$Z?1qG|a$T)87N9Y5>*anl-RcIres$HgCtu#t0xK&Up8| z_VtIk9F&lz(4Fk4y$-XfT$KYcP{*LRlqWJ8I?EH>o`r44uqj~2i7bjH)2yeZrz&af zA2dvb1MXrS$7?m^@&lXZ$+PX+5=!rX^MIk2s)h|i1MEXpt&!jp)2A%t&=0N=CUUva zQL8>(oTeeqQy_fug3Tw;&jo96$UF^XEyM$*oRY!~hSZEU3}WJmiShwrQ1lC5gb8+< zYUZQ+b`YoDyr~K!C~*Nw_j&62y5KY4(XTndEJ$`k?2Ws>D%<;gH#)U#FFGQBMyi>& zbnsw~S=2tx);LLdfGpPU4r8e8U8^hF;>Lb>`uzU7Y6I>Vj}~5({fqu=qJDp(Kid5K z%KzN_Tz^ml%ZrIAAP=BC+c87cWs_*j2J?FO>LS8|Z>If~=`1y@xEax08yK{1FX}>; z`z-y9Yd@asB89ZMvVp{GmKnmE$JeeYmOPt$`DMA!^!{xgqgUV=^$#xd!8^1rs6QMC zRTuMq$oeCJ7k$KG-B`HEF#9);H3p-G5Xzd)e_dFhC{$08uWr~4%rpKyNG5k_MM^zn z-ZRV>kyH*o4Ap}NY&}O1@OU70EpdO;XS%FFna#2+S&z@@UyqkfaR~Xed(%E*vKfT1 zp0FH&50&Ui|Cs2S$J^I!U1i}(O}mlPM#O6tfD*TC;s@I3g23S{onoL-V>>J|NRO8u zOOayI-`Uw`J$TXeN#df#N8?2cYtPniNQ{x%DrvwW)SRV7!i*GzH*y^m_pM=sg=>XM zBXkT@9R1uD#F@otS)_O4y?*2xL@49qP!PU`mX4v-bNhDDjrsL(0#{kW$ox-MZQjPi z)?hgH4yG&>?s_LWo{WCk5D5*|Fv3-=ehQM=qE8gvIBJW!}Ihqqiso{jK0ig;Dy*Ai;bF*k?cO#zO zX2F?6IYL-0niw*hrH9swljd~I*qOiWGF7|1n7~MP;Tk>1PKX{pd-RMh*-zGt;_XpO zZlBP8iHfmCpupNQw+f}>a)jJ__Pu{wVke!6;;Sv6qkmMYEwajYt;CVohb2|OAG>P1 zATMB+?!^smpy`vY3%7TD>W3Vv18diA29R4_^@-xX4N-2K(G^+y?@JHRNtcfN zJolloIi!dXV`(2r6yC_0U$o2$zNn8793F_D0yXe2+0$;1hZb$0*j^1XI6ff7UNDnf zLt(kaBU-Q8B^> zFEAtpaPL5Bn!jNRcj2~ucP?1!dkae0GUfbgE^QN|Thddbeh_6wcDZCG0pjIlz(T!b zxEf`6EnYmG0QV3qJb(D*u0;Ic(8>ohh0w&c10e11D2`TJ*O~oyH-;@XMYSW=G_koM z-f~_Hkf{DWTB7qOXspCix&V4CS9f@2sWq3WKD(T0fX_7?)^riBrtPk|*Sx@`N9a8R zg;HK+UiNlWi0v9qJTZh2)sCkDm3UmvbgrIi%1sgWwFV!0f?Ka%U+tUbp+0AtHu+Q> z=lH-T0%AC8Aczi9PJ);%XK6FO7iZiW(b$|gA1C)8efwx*y{WXOo$_}Q@RBB{|Gp{` z22?y4iL_YKN5p=xHr|$VGIU3p@Jnb94iuY~++RQ>%bCQb{f>N6y{+Ze7vziW(JI*) zfSt<)Q{t|^r!27E;8HMQpRcX2_pEs7z?NG(tSd4R;Mndg;7+~9uX ze8AD72}!w$1<7N}>0LkyJa2=QL_%|7>{5D`yXVp<*^wP#%oVOu!wMfCSEUO9j~#0CHtqhc zjzT9lE6q3}mtc2$cd_?!IXzP^)$c93IOHQHf5hmy=9pQA`pw<-hkyU`+H>QVq$vEE zE^=ZiyJR`aWYgDTkz@-VO}?Qy@PdWortjT zrKiWRrh1)Uj2=B6lFQTw?D=%l3mv)FZXHam!!f#B1 zLlxdtbithkKjU>ie6+qXDvgIh+G36EYlo`*Kq8=^FfFFJsUQ#QvIEL}PTK;Q!R0!@ z^+*5P3jKL(nAx6k6+v`!O-VmsdE0^Vyp!nV&IB&4w(-|zv2Cqs8O2bH`MY#!w4OD#!q3D+ z^fDV#NtvLUdch?|aKoRKoTdKno~LN)rc_B~?5a_!UjZD)8X4i{=I2mNJvRb04YUTv z&XR<~vUvTPeR^~N{SVyQcu@x`w6WfrOyaSLOxThKGqwGscAYOEH!6(EhT2)Poc#g? z!2EHCx08)OJAZhnrOFfki?WYgDNO| znxep{^OO#(&dv3GXA;?WckewEafy*OO<=$-wQ48X=3zZeT{Qfy&l3XcyStAb-+Q=r z@836%9|~b=nS>`MGU={6<=Xgo592ELjP|W%o%L)v6WIje8A7p=3Mm2H?6>nc%=#Rm zgXmr)u`js0kXk%rL$q^+!GryNpQ!=HdIvxJ)p(94EDQ`d+~m^|vNN`kVqj&5H7Z6g zSPAhaT0uz@RtvasCYbpw%fB~o9`TpHf;5alf;nG!{bedcnuhd@7f(64>@@!oN(D`peEW+l}Dk#!IUH%vsEE#X>*$?-1 zK&|vj^_3yXK+^CL_ZwfJYORF+xBhVL@ndS>$w>b+9kt5%#^*fJv494$W9Y`(^Y0QD zt~Lx6qRxL>z-G^6-vYeEo6BH^BWD!BaJ{?5S8xZYwfnXWll6MVmdjld*h)M*;eSgr zEG@x4Yor!zHQtgM^8TH)5_!1v?+Ft_tyb3CYtG|oSlO5lK(c2b|DL%UU(|l7%r?|k zN$=X(Ls&@PJH$?CGx5aO+$kL9L%V>z1*?xr`mp7TYgj(HJBw}SID+umt_$l0+ zI_KRQLOfSN2(QSNbp)#NZIiS;kLf zg}L?um!4Vytrw1mAPYgt*-_&P_qvK01w&B#>zF+dMwod9$Wz)bOZb*oM+%~0XZM)d z9Bp!eN>B72LOs+I(K(ypQXgXc2`IroQ{(x4PM;cYt+&K9v7nmnSY~+(fqGudv{I zNcSbh17vcV=2jnNM5bLWK|u9dP0POM*+uU;LEj&*`E)qOhkZ$>E!IDxsu$osEL*Xr z8o)S)cq7v+H;)xt`%*XF_$NV@8XFmWnErpkM%IlFurc&dx{UfK&@l@-QCX8R)RDkW z^2|$or${NSSzcRmMBb%2#O5!phg$zBI&_Kn?19VE^-)7cGF+aLtY8PC8K)wyfbnFz z@4acsf;$Ml$xbNGd&#t?`;VSWf!2b3dmr1GwI3T572njuooB5A0}Jx z58l6=e6>{8QryV&$nhy$as)CcX!7M|)@GyW_zO@J`lO!JMNxF-P1HCFlKCfaG+l(F zftVd0!+IQ^LD96KXn*HtWf)rz=!@NuQz=cdJ$2T z-^Is8pM(UPNrdv=Z{6&Xz#~;=+{i>H^TBIgImtX4(WC4Li4x4ER%k{!)=0=KPQkRpIh|LSs#H*=}ru#iy7~>a7st z58Mo%T*GDgr6=@bILi-w$2P+ZH~oEiMQKi&myf(lHJNG4G-Yx6qr>ge3I)W?S_iYp z!+0Z0+_+K2zmHwIADk=hZZEe1h zn9^i(9Gw=9mH~>ox3KHbjVx%}()OkYQgMHPXtO#JqGdJ9zY$PoC;DaxgokyDCSKl1 z8l6D#Ub@Y}A;d(IF;$8JjSIM8v!xC2qzt2V?dpv*J{3>1OLw%_1i2cV+`M8mudtXR z8XT@*`_YklN3|&m76`zS^^xz*8hr5d`FD3WemC*|)~E=U&fYMIyPW}Nu+FINP;F5o z-7^EH&0AwH@ZiP&BNh4R56VT^-LCz;K%mLD>?P(xsUb@71&nDuR}Mz^T85 z>x1nP{+quqBg{9_wCXiQdJMa~Jx|Tp$1|%WJ>fNBim1-O&&zw9B|SIS$(?kQRf1CiYiNlGs}$8b*~; zd9bur;fqdJM!{w(N&eUsIWb4h=%7;TyiJt?=4M*0jUIi+XiS!|*eQKXoaTAtanE1F z=y9dBKdmVwa}3*tPkDp?+vUGY3|wO15(AeQxWvFE1}-shiGfQDTw>r71D6=M#K0v6 rE-`S4flCZrV&D=3ml(Ljz$FGQF>r~2OAK6M;1UCu7`Vj1#W3(+e~+JF literal 0 HcmV?d00001 diff --git a/po/bash.pot b/po/bash.pot index 3340d22c..d195ab73 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 -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" +"The if COMMANDS are executed. If the exit status is zero, then the then" msgstr "" #: builtins.c:1169 msgid "" -"in turn, and if the exit status is zero, the corresponding then COMMANDS" +"COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" msgstr "" #: builtins.c:1170 msgid "" -"are executed and the if command completes. Otherwise, the else COMMANDS" +"in turn, and if the exit status is zero, the corresponding then COMMANDS" msgstr "" #: builtins.c:1171 msgid "" -"are executed, if present. The exit status is the exit status of the last" +"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: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 +#: builtins.c:1208 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" +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 00000000..de6c1eb6 --- /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 0e3d7326..d69a6684 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 a42eb780..6aca944f 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 00000000..a42eb780 --- /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 00000000..a42eb780 --- /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 72ec06a2..3efcf32d 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 f0c456e5..fa2ae2ac 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 db02c895..4f5d830d 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